Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling JSON RPC 2.0标准响应_Error Handling_Standards_Json Rpc_Web Standards - Fatal编程技术网

Error handling JSON RPC 2.0标准响应

Error handling JSON RPC 2.0标准响应,error-handling,standards,json-rpc,web-standards,Error Handling,Standards,Json Rpc,Web Standards,我目前正在研究在代码中实现一些JSON RPC 2.0响应。但是,我有点不清楚使用它的标准实践是什么: 1) 当用户发送带有无效参数的请求时,我是否应该逐字返回默认错误消息 {"jsonrpc": "2.0", "error": {"code": -32602, "message": " Invalid params"}, "id": "1"} 或者信息可以更具体一些,比如: {"jsonrpc": "2.0", "error": {"code": -32602, "message":

我目前正在研究在代码中实现一些JSON RPC 2.0响应。但是,我有点不清楚使用它的标准实践是什么:

1) 当用户发送带有无效参数的请求时,我是否应该逐字返回默认错误消息

 {"jsonrpc": "2.0", "error": {"code": -32602, "message": "  Invalid params"}, "id": "1"}
或者信息可以更具体一些,比如:

 {"jsonrpc": "2.0", "error": {"code": -32602, "message": "  Invalid params: invalid username"}, "id": "1"}
或者这些自定义消息应该有自己的错误代码吗

2) 如果用户说,从数据库请求数据,而响应是“数据不存在”,如中所示,我们没有遇到任何错误,但仍然没有返回任何内容,那么应该以JSON RPC
错误
的形式返回,还是应该是更多的表示未找到数据的响应?换句话说,JSON RPC中使用错误作为正常返回条件的约定是像GoogleGo中那样的,还是更类似于“真正混乱的事情”恐慌

  • 根据规范(),您必须使用可选属性
    data
    获取有关错误的附加信息,因此,在您的情况下,响应必须为:
  • {“jsonrpc”:“2.0”,“错误”:{“code”:-32602,“消息”:“无效参数”,“数据”:“无效用户名”},“id”:“1”}
    

    您可以在
    -32000
    -32099
    的范围内创建自己的个人错误代码,但我只会在必要时这样做,也就是说,除非您的客户端应用程序在这种情况下的行为(“无效用户名”)与在任何其他-32602情况下的行为不同

  • 这取决于你。这是一个比JSON-RCP范围更广的设计问题。你可以在这篇文章中找到一些观点: