Pregunta

No entiendo para qué sirve la identificación en JSON RPC. Además, ¿qué tan malo se considera no usar los estándares de JSON-RPC.org al desarrollar un kit de herramientas? Parece haber cierta ambigüedad en el mundo JSON-RPC.

Ps La identificación a la que me refiero es la identificación aquí:

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

Solución

No está garantizado que recupere sus respuestas en el pedido que les pidió; La identificación es ayudarlo a resolver eso.

Otros consejos

La "ID" se devuelve en el objeto de respuesta correspondiente, por lo que puede asignar un contexto al otro.

Si está haciendo llamadas individuales sincrónicas, puede no tener sentido, pero en un entorno asíncrono de múltiples mallas es vital.

No debe ser difícil codificado a 1, pero establecer un valor único para cada objeto de solicitud que genere desde el cliente.

Ninguna de las respuestas menciona la diferencia entre las dos versiones existentes del protocolo.

JSON RPC 1.0:

La identificación de la solicitud. Esto puede ser de cualquier tipo. Se usa para que coincida con la respuesta con la solicitud a la que está respondiendo.

JSON RPC 2.0:

Un identificador establecido por el cliente que debe contener una cadena, número o valor nulo si se incluye. Si no se incluye, se supone que es una notificación. El valor normalmente no debe ser nulo y los números no deben contener piezas fraccionarias.

Por lo tanto, está perfectamente bien en JSON RPC 2.0 establecer ID en algún valor fijo. Pero tenga en cuenta el uso de ID en solicitudes de lotes.

  1. Para que el servidor sepa que espera una respuesta.
  2. Para que coincidan con las solicitudes con las solicitudes cuando se usa asíncrono o llamadas por lotes.

Puedes leer la documentación JSON RPC https://www.jsonrpc.org/specification. En el "objeto de solicitud 4", el parámetro de identificación se explica claramente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top