由于JSON-RPC是针对性的,因此我在C#中没有映射到JSON-RPC的API。在JSON-RPC中,您如何表示面向对象的API?
我当然可以使用JSON-RPC扩展名,以便该请求看起来像:

{ "jsonrpc":"2.0", method:"ObjectName.Method", "params":[], "id": 1 }

但这感觉有点刺,还需要大量的工作才能定义。我也可以将其包括在一个参数中,但同样,它感觉不正确。
使用JSON-RPC对抗面向对象的API有什么最佳做法?

有帮助吗?

解决方案

JSON-RPC是JSON遥控器 程序 呼叫和默认情况下的过程。

但是,如果您通过HTTP工作,则可以将每个RPC服务视为对象。即如果您访问 /foo/bar 并打电话 beep 通过HTTP上的JSON-RPC,然后打电话 beep 的方法 foo 服务 bar 目的。

否则,您可以按照所有OOP在过程调用中映射的方式进行操作:

foo.bar(x1,x2) -> bar(foo,x1,x2) 

如果foo是“指针”对象的“指针”,则可能是对象uuid。 (这就是在某些RPC中实际完成的)。

所以你打电话

f=new integer(0);
f.add(10);
f.add(20);
x=f.get();
delete f;

去:

client:   new("integer",0)
server:   return "23ab3cb45"
client:   add("23ab3cb45",10);
client:   add("23ab3cb45",20);
client:   get("23ab3cb45");
server:   return 30
client:   delete("23ab3cb45");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top