Pregunta

Tengo una API en C# que no se asignará a JSON-RPC debido al hecho de que JSON-RPC está orientado procesalmente. ¿Cómo en JSON-RPC representarías una API orientada a objetos?
Por supuesto, puedo usar las extensiones JSON-RPC para que la solicitud se vea como:

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

Pero se siente un poco hackish y también requiere mucho trabajo para definir. También puedo incluirlo como parámetro, pero nuevamente no se siente bien.
¿Existe una mejor práctica con respecto a trabajar contra una API orientada a objetos que usa JSON-RPC?

¿Fue útil?

Solución

JSON-RPC es JSON Remote Procedimiento Llamada y, por defecto, el procedimiento orientado.

Sin embargo, si trabaja en HTTP, puede ver cada servicio RPC como objeto. Es decir, si accedes /foo/bar y llama beep sobre json-rpc sobre http y luego llamas beep método de foo servicio de bar objeto.

De lo contrario, puede hacerlo de la forma en que todos los OOP asignaron el procedimiento llamadas:

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

Donde foo es "puntero" al objeto, para rpc puede ser objeto uuid. (Así es como se hace realmente en algunos RPC).

Entonces llamas

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");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top