Domanda

Ho un'API in C# che non mappa a JSON-RPC a causa del fatto che JSON-RPC è orientato proceduralmente. Come in JSON-RPC rappresenteresti un'API orientata agli oggetti?
Ovviamente posso usare le estensioni JSON-RPC in modo che la richiesta sembri:

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

Ma sembra un po 'hackish e richiede anche molto lavoro per definire. Posso anche includerlo come parametro, ma di nuovo non sembra giusto.
Esiste una migliore pratica per quanto riguarda il lavoro contro un'API orientata agli oggetti usando JSON-RPC?

È stato utile?

Soluzione

JSON-RPC è JSON Remote Procedura Chiama e per impostazione predefinita orientata alla procedura.

Tuttavia, se lavori su HTTP è possibile vedere ogni servizio RPC come oggetto. Cioè se accedi /foo/bar e chiama beep su JSON-RPC su HTTP, quindi chiami beep metodo di foo servizio di bar oggetto.

Altrimenti puoi farlo come tutto OOP mappato tramite chiamate di procedura:

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

Dove foo è "puntatore" per obiettare, per rpc può essere oggetto uuid. (È così che viene effettivamente fatto in alcuni RPC).

Quindi chiami

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

Va a:

client:   new("integer",0)
server:   return "23ab3cb45"
client:   add("23ab3cb45",10);
client:   add("23ab3cb45",20);
client:   get("23ab3cb45");
server:   return 30
client:   delete("23ab3cb45");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top