Comment approcher un objet API orientée avec JSON-RPC?
-
26-09-2019 - |
Question
J'ai une API en C # qui ne carte à JSON-RPC en raison du fait que JSON-RPC est orienté de la procédure.
Comment JSON-RPC-vous représenter un objet API orientée
Je peux bien sûr utiliser les extensions JSON-RPC de sorte que la demande ressemblerait à ceci:
{ "jsonrpc":"2.0", method:"ObjectName.Method", "params":[], "id": 1 }
Mais il se sent un peu hackish et exige aussi beaucoup de travail à définir.
Je peux aussi l'inclure comme paramètre mais encore une fois il juste ne se sent pas bien.
Y at-il une meilleure pratique en matière de travail contre un objet API orientée à l'aide JSON-RPC?
La solution
JSON-RPC est JSON à distance Procédure Appel et par la procédure par défaut orientée.
Toutefois, si vous travaillez sur HTTP, vous pouvez voir chaque service RPC comme objet. C'est à dire. si vous accédez /foo/bar
et appel beep
sur JSON-RPC sur HTTP, vous appelez méthode beep
de service foo
d'objet bar
.
Sinon, vous pouvez le faire de la façon dont tous les POO mappée sur les appels de procédure:
foo.bar(x1,x2) -> bar(foo,x1,x2)
Où foo est « pointeur » pour objet, pour RPC, il peut être l'objet UUID. (Voilà comment il est réellement fait dans certains RPCS).
Vous appelez
f=new integer(0);
f.add(10);
f.add(20);
x=f.get();
delete f;
Va à:
client: new("integer",0)
server: return "23ab3cb45"
client: add("23ab3cb45",10);
client: add("23ab3cb45",20);
client: get("23ab3cb45");
server: return 30
client: delete("23ab3cb45");