我使用模块requests
作为客户端和tornado
作为服务器实现了客户端 - 服务器接口。我用它来查询数据库,其中一些数据项可能不可用。例如,查询中的作者可能不在那里或书名。
是否有推荐的方式让我的客户知道,缺少什么?像HTTP 404: Author missing
或类似的东西?
答案 0 :(得分:1)
由于HTTP 404响应可以有响应主体,我会将详细的错误消息放在正文中。例如,您可以在响应正文中发送字符串Author Not Found
。您也可以使用API已经使用的格式发送响应字符串,例如XML,JSON等,以便服务器的每个响应具有相同的基本形状。
将代码404与X Not Found
消息一起使用取决于API的结构。如果它是一个RESTful API,其中每个URL对应一个资源,那么如果资源本身缺少,404就是一个不错的选择。如果请求的数据字段丢失,但请求的资源存在,我认为404不是一个好的选择。
答案 1 :(得分:0)
HTTP 404的含义是固定的,请参阅Wikipedia's List of HTTP status codes。
您可以选择一个特定的状态代码,以更好地满足您的需求,并添加一些关于传输数据中缺少的内容(请求的方法“文本”,如果我理解文档正确的话)。