3

JSON-RPC は手続き型であるため、JSON-RPC にマップされない C# の API があります。JSON-RPC では、オブジェクト指向 API をどのように表現しますか?
もちろん、リクエストが次のようになるように JSON-RPC 拡張機能を使用できます。

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

しかし、それはハックのように感じられ、定義するために多くの作業が必要です。パラメーターとして含めることもできますが、これも適切ではありません。
JSON-RPC を使用したオブジェクト指向 API に対する作業に関するベスト プラクティスはありますか?

4

1 に答える 1

5

JSON-RPC は JSON リモートプロシージャコールであり、デフォルトではプロシージャ指向です。

ただし、HTTP を介して作業する場合は、各 RPC サービスをオブジェクトとして見ることができます。つまり、JSON-RPC over HTTP にアクセス/foo/barして呼び出す場合は、オブジェクトのサービスのメソッドを呼び出します。beepbeepfoobar

それ以外の場合は、すべての 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");
于 2010-11-21T13:02:50.367 に答える