Frage

Ich verstehe nicht, wofür die ID in JSON RPC ist. Wie schlimm wird es auch als die Standards von JSON-RPC.org bei der Entwicklung eines Toolkits nicht verwendet? Es scheint einige Unklarheiten in der JSON-RPC-Welt zu geben.

PS Die ID, auf die ich mich beziehe, ist die ID hier:

{"params":["Hello","World"],"method":"hello_world","id":1}
War es hilfreich?

Lösung

Sie werden nicht garantiert Ihre Antworten in der Reihenfolge zurückerhalten, die Sie nach ihnen gefragt haben. Die ID soll Ihnen helfen, dies zu klären.

Andere Tipps

Die "ID" wird im entsprechenden Antwortobjekt zurückgegeben, sodass Sie einen Kontext dem anderen zuordnen können.

Wenn Sie synchrone Einzelaufrufe tätigen, ist dies möglicherweise nicht sinnvoll, ist jedoch in einer asynchronen Multi-herausragenden Umgebung von entscheidender Bedeutung.

Es sollte nicht schwer auf 1 codiert werden, sondern auf einen eindeutigen Wert für jedes Anforderungsobjekt, das Sie vom Client generieren, eingestellt sein.

Keine der Antworten erwähnt den Unterschied zwischen den beiden vorhandenen Versionen des Protokolls.

JSON RPC 1.0:

Die Anfrage -ID. Dies kann von jeder Art sein. Es wird verwendet, um die Antwort mit der Anfrage anzupassen, auf die es antwortet.

JSON RPC 2.0:

Eine vom Client festgelegte Kennung, die bei enthaltenen Zeichenfolge, Zahl oder Nullwert enthalten muss. Wenn es nicht enthalten ist, wird angenommen, dass es eine Benachrichtigung ist. Der Wert sollte normalerweise nicht null sein und die Zahlen sollten keine Bruchteile enthalten.

Daher ist es in JSON RPC 2.0 vollkommen in Ordnung, ID auf einen festen Wert festzulegen. Aber seien Sie sich der Verwendung von ID in Batch -Anfragen bewusst.

  1. Damit der Server wissen lässt, dass Sie eine Antwort erwarten.
  2. Antworten auf Anfragen bei der Verwendung von Asynchronen oder übereinstimmen Batch -Anrufe.

Sie können das JSON -RPC -Dokument lesen https://www.jsonrpc.org/specification. Im "4 Anfrageobjekt" wird der ID -Param klar erklärt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top