JSON-RPC and Json-rpc service discovery specifications
Asked Answered
O

4

12

I'm going to implement JSON-RPC web service. I need specifications for this. So far I had found only one resource that can be called as real specifications:

However I've seen that JavaScript frameworks like Dojo actively use JSON-RPC SMD

But it requires JSON Schema specifications, but it redirects to incorrect URL as reference. So far I had found the following:

And it is still draft...

Can anybody point me to some actual specifications... At least something official updated? Because it looks like that implementing JSON-RPC 1.0 as is may be not enough, at least for frameworks like Dojo. Or am I wrong?

Questions:

  • Would implementation of JSON-RPC 1.0 specifications be enough to provide JSON-RPC service for most of modern clients, and how many clients are there (if at-all) that actually support capabilities beyond JSON-RPC 1.0 (SMD, Schema, 2.0)?

    Because it looks like that JSON-RPC 1.0 is only one that has official specifications (and not draft)

  • If I should implement SMD, or it is recommended can somebody point to official, most recent specifications of Json Schema and Service Mapping Description or are the links I found really "the specifications?"

  • Are JSON-RPC 2.0, SMD and JSON-Schema drafts stable enough to implement them?

Note: do not suggest existing JSON-RPC service implementations.

Anybody?

Edit: Anybody uses JSON-RPC at all?

Overjoy answered 14/4, 2010 at 9:39 Comment(5)
Now JSON-RPC 2 is not a draft but is an approved specification and Json-Schema is a working draft.Hydrated
@Hydrated - thank you very much. This is important. Do you know if any SMD or Json-Schema are no longer drafts?Overjoy
Json-Schema is an internet draft which means that it should be approved or declined (but I don't think that would happen) soo. SMD has it's problems so I'm not so sure about it. First of all it only supports HTTP or URI based transport while JSON-RPC can be trasported using sockets only. It might be extended to be able to support sockets or other means of communication through the target property. I'll email Kris about it. Are you, by any chance implementing it for CppCms? If so, I need a JSON-RPC implementation myself. I might help.Hydrated
@Hydrated CppCMS fully implements and supports JSON-RPC 1.0 over HTTP. I think it would be quite easy to add 2.0 since it is approved. Also it would require additional support of named parameters (1.0 has only positional parameters), but it is quite easy. Also CppCMS supports manually generated SMD (i.e. you provide smd file it just serves it).Overjoy
I don't need the HTTP support, on the contrary I need JSON-RPC over sockets. I am currently planning to implement a JSON-RPC 2.0 implementation. Care to contact me by mail? See my profile.Hydrated
S
5

If I should implement SMD, or it is recommended can somebody point to official, most recent specifications of Json Schema and Service Mapping Description or links I found are really "the specifications?"

Are JSON-RPC 2.0, SMD and JSON-Schema drafts stable enough to implement them?

Every project I've found using this stuff links to the same specs that you've found. Folks are using it based on the draft specs, but not enough to really drive the development of good docs and examples.

http://javascript.neyric.com/blog/2009/03/06/inputex-022-smd-yui-rpc/

http://www.tine20.org/wiki/index.php/Developers/Concepts/Howto_connect_to_Tine_2.0_over_JSON-RPC

http://framework.zend.com/manual/en/zend.json.server.html

Seashore answered 21/4, 2010 at 21:0 Comment(0)
N
2

I have found the specification for SMD in the dojo documentation. So far this is the most complete and most up to date I could find. Did you have any luck getting your JsonRPC service up and running?

https://github.com/dojo/docs/blob/master/dojox/rpc/smd.rst

Nonentity answered 23/3, 2012 at 13:52 Comment(0)
U
0

There is an SMD in JSON-RPC.NET. So if you would like some sample code you can pull it from the source browser. Here is a Link to SMD code, it could at least be worth a peek, even if though it's not claimed to be release quality SMD service yet.

Unintelligent answered 21/9, 2012 at 6:24 Comment(0)
M
0

I created Brutusin-RPC based on the following references:

In my case the fact of this last being a draft did not bother me too much since the library provides tools that isolate the client from the details of the schema, like endpoint clients, descriptive builtin services, and testing modules... In fact, I use some custom extensions of JSON-Schema...

Massasauga answered 16/9, 2016 at 11:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.