JSON RPC - 什么是“id”?

时间:2010-02-05 22:05:48

标签: json json-rpc

我不明白JSON RPC中的ID是什么。另外,在开发工具包时,考虑不使用JSON-RPC.org的标准有多糟糕? JSON-RPC世界似乎存在一些歧义。

P.S。我所指的ID是这里的ID:

{"params":["Hello","World"],"method":"hello_world","id":1}

5 个答案:

答案 0 :(得分:19)

您无法保证按照您要求的顺序获得答案; id是为了帮助你解决这个问题。

答案 1 :(得分:8)

“id”在相应的响应对象中返回,因此您可以将一个上下文映射到另一个上下文。

如果您正在进行同步单一呼叫,则可能没有意义,但在异步多出色呼叫环境中,它至关重要。

它不应硬编码为1,而是为从客户端生成的每个请求对象设置唯一值。

答案 2 :(得分:1)

没有一个答案提到了现有协议的两个版本之间的区别。

JSON RPC 1.0

  

请求ID。这可以是任何类型。它用于匹配   响应它回复的请求。

JSON RPC 2.0

  

客户建立的必须包含字符串的标识符,   如果包含数字或NULL值。如果不包含它,则假设   是一个通知。值SHOULD通常不是Null和   数字不应包含小数部分。

因此,在JSON RPC 2.0中将id设置为某个固定值是完全正常的。但请注意在批处理请求中使用id。

答案 3 :(得分:0)

  1. 让服务器知道您期待回复。
  2. 在使用异步或batch calls
  3. 时匹配对请求的响应

答案 4 :(得分:-1)

您可以阅读JSON RPC文档https://www.jsonrpc.org/specification。在“ 4请求对象”中,对id参数进行了清楚的说明。