我有一个使用模块requests
作为客户端和服务器实现的客户端-服务器接口tornado
。我用它来查询数据库,其中某些数据项可能不可用。例如,查询中的作者可能不存在或书名不存在。
有没有推荐的方法让我的客户知道缺少什么?像一个HTTP 404: Author missing
或类似的东西?
我有一个使用模块requests
作为客户端和服务器实现的客户端-服务器接口tornado
。我用它来查询数据库,其中某些数据项可能不可用。例如,查询中的作者可能不存在或书名不存在。
有没有推荐的方法让我的客户知道缺少什么?像一个HTTP 404: Author missing
或类似的东西?
由于 HTTP 404 响应可以有响应正文,我会将详细的错误消息放在正文中。例如,您可以Author Not Found
在响应正文中发送字符串。您还可以以您的 API 已经使用的格式(例如 XML、JSON 等)发送响应字符串,以便来自服务器的每个响应都具有相同的基本形状。
是否对消息使用代码 404X Not Found
取决于您的 API 的结构。如果它是一个 RESTful API,其中每个 URL 对应一个资源,那么如果缺少资源本身,404 是一个不错的选择。如果缺少请求的数据字段,但请求的资源存在,我认为 404 不是一个好的选择。
HTTP 404 的含义是固定的,请参阅维基百科的 HTTP 状态代码列表。
您可以从这些状态代码中选择一个更适合您需求的特定状态代码,并添加一些有关传输数据中缺少的内容的上下文(如果我理解文档正确,请求的方法“文本”)。