如何使用 JSON-RPC 处理面向对象的 API?
我有一个 C# API,它不会映射到 JSON-RPC,因为 JSON-RPC 是面向过程的。 如何在 JSON-RPC 中表示面向对象的 API?
我当然可以使用 JSON-RPC 扩展,以便请求看起来像:
{ "jsonrpc":"2.0", method:"ObjectName.Method", "params":[], "id": 1 }
但感觉有点 hackish 并且还需要大量工作来定义。 我也可以将它作为参数包含在内,但它又感觉不对。
是否有关于使用 JSON-RPC 处理面向对象 API 的最佳实践?
I have an API in C# that won't map to JSON-RPC due to the fact that JSON-RPC is Procedurally oriented.
How in JSON-RPC would you represent an Object Oriented API?
I can of course use the JSON-RPC extensions so that the request would look like:
{ "jsonrpc":"2.0", method:"ObjectName.Method", "params":[], "id": 1 }
But it feels kinda hackish and also requires a lot of work to define.
I can also include it as a parameter but again it just doesn't feel right.
Is there a best practice regarding working against an Object Oriented API using JSON-RPC?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JSON-RPC 是 JSON 远程过程调用,默认情况下面向过程。
但是,如果您通过 HTTP 工作,您可以将每个 RPC 服务视为对象。即,如果您访问
/foo/bar
并通过 HTTP 上的 JSON-RPC 调用beep
,那么您将调用foo
的beep
方法bar
对象的 code> 服务。否则,您可以按照所有 OOP 映射到过程调用的方式来执行此操作:
其中 foo 是指向对象的“指针”,对于 RPC,它可能是对象 UUID。 (这就是某些 RPCS 中实际完成的方式)。
所以你打电话
去:
JSON-RPC is JSON Remote Procedure Call and by default procedure oriented.
However if you work over HTTP you can see each RPC service as object. I.e. if you access
/foo/bar
and callbeep
over JSON-RPC over HTTP then you callbeep
method offoo
service ofbar
object.Otherwise you may do it the way all OOP mapped over procedure calls:
Where foo is "pointer" to object, for RPC it may be object UUID. (That is how it is actually done in some RPCS).
So you call
Goes to: