[cl-json-devel] Question about JSON-RPC
Robert Goldman
rpgoldman at sift.info
Wed Dec 30 21:15:03 UTC 2009
On 12/30/09 Dec 30 -12:50 PM, Henrik Hjelte wrote:
> On Wed, Dec 30, 2009 at 4:37 PM, Robert Goldman <rpgoldman at sift.info> wrote:
>> I am setting up a JSON-RPC server over sockets, rather than HTTP, and
>> have a couple of questions about json-rpc.lisp:
>>
>> 1. Am I correct in thinking that INVOKE-JSON does not handle
>> notifications? It looks like it will always try to return a result.
>> Question: would it be reasonable to modify INVOKE-JSON to handle
>> notifications by just executing the function and /not/ returning a result?
>
> Yes, but how would the API change.
> An idea is to let the caller decide if he wants return values, maybe
> by exposing two functions.
If I understand the CL-JSON spec correctly, the caller decides that s/he
doesn't want return values by setting the ID field of the request to null.
My modified invoke-json function checks for a null id field and returns
nothing if it finds that.
>
>>
>> 2. My socket server must parse JSON messages and decide what type they
>> are before it can call invoke-json. This suggests refactoring
>> invoke-json into two stages:
>>
>> a. the part that calls the decoder and pulls out the three slots
>>
>> b. an inside function that accepts method, params, id, and does the
>> actual invoking.
>>
>> I was thinking of submitting a patch along those lines. Please let me
>> know if that seems wrong.
>
> I agree with the problem.
OK, if this seems like a reasonable refactoring, I will grapple with
darcs and try to get it to yield me a patch to send you.
Best,
R
More information about the cl-json-devel
mailing list