我认识一个正在编写API的人,想要使用HTTP状态码来报告查询结果。例如,如果用户调用
所以我的问题是,
1)是否适合使用HTTP状态码传达非HTTP程序状态,就像上面的示例一样?
2)是否有一些标准或至少广泛使用的规范描述何时适用HTTP状态码?
example.com/api/product_info?product_id=X
,且该产品不存在,则会返回 HTTP 状态码 400: 错误请求
。我认为,由于这是一个有效的调用(即实际的 HTTP 请求没有格式错误),它应该返回一个200
代码响应,并将响应体设置为类似于 {status: 'error'; message: 'No such product'}
的内容。所以我的问题是,
1)是否适合使用HTTP状态码传达非HTTP程序状态,就像上面的示例一样?
2)是否有一些标准或至少广泛使用的规范描述何时适用HTTP状态码?
/setprice?product=X&price=Y
,如果产品X存在但Y不是可接受的价格(例如,当最低价格为$5时,价格为$1),您会返回什么响应?还是404? - Benubird