我目前正在考虑在我的代码中实现一些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返回{{ 1}},还是应该更多的回复表明没有找到数据?换句话说,JSON RPC中的约定是将错误用作Google Go中的正常返回条件,还是更类似于“真正搞砸了”恐慌?
答案 0 :(得分:2)
data
来获取有关错误的其他信息,因此,在您的情况下,响应必须是: {"jsonrpc": "2.0", "error": {"code": -32602, "message": " Invalid params", "data":"invalid username"}, "id": "1"}
您可以在-32000
到-32099
的范围内创建自己的个人错误代码,但我只会在必要时执行此操作,即除非您的客户端应用程序在这种情况下应该运行(“无效”用户名“)与任何其他-32602案例不同。