Pergunta

Eu tenho uma API em C# que não mapeará para o JSON-RPC devido ao fato de o JSON-RPC ser orientado proceduralmente. Como no JSON-RPC você representaria uma API orientada a objeto?
É claro que posso usar as extensões JSON-RPC para que a solicitação fosse:

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

Mas parece meio hackish e também requer muito trabalho para definir. Também posso incluí -lo como um parâmetro, mas novamente não parece certo.
Existe uma prática recomendada em relação a trabalhar contra uma API orientada a objetos usando o JSON-RPC?

Foi útil?

Solução

JSON-RPC é remoto JSON Procedimento Ligue e, por padrão, procedimento orientado.

No entanto, se você trabalha com o HTTP, poderá ver cada serviço RPC como objeto. Ou seja, se você acessar /foo/bar e ligue beep sobre JSON-RPC sobre HTTP e você liga beep método de foo serviço de bar objeto.

Caso contrário, você poderá fazer isso da maneira que todos os OOP mapearam as chamadas de procedimento:

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

Onde Foo é "ponteiro" para objetar, para RPC, pode ser objeto uuid. (É assim que é realmente feito em alguns RPCs).

Então você liga

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

Vai para:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top