我正在处理一个restful API后端,我们只使用json作为内容类型。据我所知,有两种方式执行错误响应:REST API错误返回,是否包含HTTP状态代码
- HTTP状态码始终为200,返回的json应该包含错误代码和错误消息。
- 将HTTP状态码视为我们的API的一部分,我们可能会选择HTTP错误码(4XX)为相应的错误状态。我们可以在有效载荷中包含一个json文档,以包含一个子代码和一个描述性评论。
我想知道哪一个更适合宁静的服务吗?
我正在处理一个restful API后端,我们只使用json作为内容类型。据我所知,有两种方式执行错误响应:REST API错误返回,是否包含HTTP状态代码
我想知道哪一个更适合宁静的服务吗?
一般来说,我不会主张总是返回了200元。有迹象表明,匹配普遍接受的状态码的故障情况。以上,有人提到403,当访问被拒绝时,你提供了403。当事情真的向南时,500通常由web/app服务器发布。如果找不到某个资源的记录,则为404。
所以,我对做主张:
您需要同时使用两者。
HTTP状态:使用此处理请求的状态。例如,如果您查询数据库并且没有找到任何条目,那么您仍然会返回200.如果该用户未被授权,则403,如果SQL连接数超过500,依此类推。
API状态:如果DB请求成功,你会发现没有条目,包括在你的JSON {status: NO_ENTRIES }
或{ status: DEPRECATED_API }
的自定义字段。在这些情况下,响应代码仍然是200
总是返回H TTP状态为200,但是使用API状态来表示相应的错误?我看到很多公司都这么做。 – realli
我给了你一个例子。如果您的服务器遇到服务器错误,请说内存不足或上述内容,您应该在json回复中抛出500,Ann仍然可以添加一条错误消息,告诉客户端。 – prakharsingh95
将您的代码,您使用哪种技术或库进行服务器通信?t – Gaurav