我在C#中有一个不会映射到JSON-RPC的API,因为JSON-RPC是面向过程的。在JSON-RPC中,如何表示面向对象的API?
当然,我可以使用JSON-RPC扩展,这样请求就会如下所示:
{ "jsonrpc":"2.0", method:"ObjectName.Method", "params":[], "id": 1 }但它感觉有点老土,而且还需要大量的工作来定义。我也可以把它作为一个参数包含进来,但还是觉得不太对劲。
关于使用JSON-RPC处理面向对象的API,有没有最佳实践?
发布于 2010-11-21 21:02:50
JSON-RPC是JSON远程过程调用,默认情况下是面向过程的。
但是,如果您使用HTTP,则可以将每个RPC服务视为对象。例如,如果您访问/foo/bar并通过JSON-RPC over HTTP调用beep,那么您将调用bar对象的foo服务的beep方法。
否则,您可以采用所有OOP映射到过程调用的方式:
foo.bar(x1,x2) -> bar(foo,x1,x2) 其中foo是指向对象的“指针”,对于RPC,它可以是对象UUID。(在某些RPCS中实际上就是这样做的)。
所以你打电话给
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");https://stackoverflow.com/questions/4234753
复制相似问题