题
由于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");
不隶属于 StackOverflow