Pergunta

Não entendo para que serve o ID no JSON RPC. Além disso, é ruim considerar não usar os padrões do JSON-RPC.org ao desenvolver um kit de ferramentas? Parece haver alguma ambiguidade no mundo JSON-RPC.

PS O ID que estou me referindo é o ID aqui:

{"params":["Hello","World"],"method":"hello_world","id":1}
Foi útil?

Solução

Você não é garantido para obter suas respostas de volta na ordem que você pediu; O ID é ajudá -lo a resolver isso.

Outras dicas

O "ID" é retornado no objeto de resposta correspondente, para que você possa mapear um contexto para o outro.

Se você estiver fazendo chamadas únicas síncronas, pode não fazer sentido, mas em um ambiente de escalonamento de várias contas assíncronas, é vital.

Não deve ser codificado como 1, mas definido como um valor exclusivo para cada objeto de solicitação que você gera a partir do cliente.

Nenhuma das respostas menciona a diferença entre as duas versões existentes do protocolo.

JSON RPC 1.0:

O ID da solicitação. Isso pode ser de qualquer tipo. É usado para corresponder à resposta com a solicitação a que está respondendo.

JSON RPC 2.0:

Um identificador estabelecido pelo cliente que deve conter uma string, número ou valor nulo se incluído. Se não estiver incluído, assume -se que seja uma notificação. O valor normalmente não deve ser nulo e os números não devem conter peças fracionárias.

Portanto, é perfeitamente bom no JSON RPC 2.0 para definir o ID para algum valor fixo. Mas esteja ciente do uso do ID em solicitações de lote.

  1. Para que o servidor saiba que você está esperando uma resposta.
  2. Para corresponder às respostas às solicitações ao usar assíncrono ou chamadas em lote.

Você pode ler o documento JSON RPC https://www.jsonrpc.org/specification. No "objeto de 4 solicitação", o parâmetro ID é explicado claramente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top