2013-07-16 24 views
0

我有一个客户端 - 服务器接口,使用模块requests作为客户端,tornado作为服务器实现。我用它来查询数据库,其中一些数据项可能无法使用。例如,查询中的作者可能不在那里或书名。我可以在http 404错误中使用更多的语义吗?

是否有推荐的方式让我的客户知道,缺少了什么?像HTTP 404: Author missing或类似的东西?

回答

1

由于HTTP 404响应可以有响应主体,因此我会将详细的错误消息放在主体本身中。例如,您可以在响应正文中发送字符串Author Not Found。您也可以使用API​​已经使用的格式发送响应字符串,例如XML,JSON等,以便来自服务器的每个响应具有相同的基本形状。

使用代码404和X Not Found消息取决于API的结构。如果它是一个RESTful API,其中每个URL对应一个资源,那么如果资源本身缺少东西,则404是一个不错的选择。如果请求的数据字段丢失,但请求的资源存在,我认为404不是一个好的选择。

0

HTTP 404的含义是固定的,请参阅Wikipedia's List of HTTP status codes

您可以选择这些状态码中的一个更符合您的需要的特定状态码,并为传输数据中缺少的内容添加一些上下文(如果我理解文档,请求方法“文本”)。

相关问题