ZF实现的JSON-RPC 2.0协议只允许错误代码:
const ERROR_PARSE = -32768;
const ERROR_INVALID_REQUEST = -32600;
const ERROR_INVALID_METHOD = -32601;
const ERROR_INVALID_PARAMS = -32602;
const ERROR_INTERNAL = -32603;
const ERROR_OTHER = -32000;
此外,range(-32099, -32000)是在JSON-RPC规范中预定义和/或保留的。至少这是我从规范中得到的:
错误码从-32768到-32000用于预定义错误。该范围内的任何代码,但未在下面明确定义的代码均保留供将来使用。 这些错误代码与以下网址建议的XML-RPC几乎相同: http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php
代码 消息 含义 -32700 解析错误 服务器接收到无效的JSON。 服务器解析JSON文本时出现错误。 -32600 无效请求 发送的JSON不是有效的请求对象。 -32601 方法不存在 方法不存在/不可用。 -32602 无效参数 方法参数无效。 -32603 内部错误 内部JSON-RPC错误。 -32000到-32099 服务器错误 保留用于实现定义的服务器错误。
其余空间可用于应用程序定义的错误。
规范中并没有说您不能使用-100或100等其他数字作为错误码。我有什么遗漏的吗?
我认为ZF已经将“服务器错误”和“应用程序错误”混淆为同一件事,而当阅读上面的sourcefourge链接时,显然协议的作者有不同的想法,允许应用程序开发人员使用大量的空间:
此外,范围为-32099..-32000(含)的范围保留用于实现定义的服务器错误。不能明确地映射到此规范定义的特定错误的服务器错误应分配到此范围内的编号。这使其余空间可供应用程序定义的错误使用。