我有点困惑。我对 MySQL 数据库执行一个简单的 SELECT 查询来查找一条不存在的记录,并获得每个元素都为 null 的 HTTP 200 响应。查询是通过 RESTful API 执行的,该 API 仍在由我开发。也许我错过了一些东西,例如响应代码的定义?
数据库
查询
选择*
来自 csv_data.data
其中 id = 20
响应(HTTP 200 OK)
{
“id”:空,
“购买”:空,
“价格”:空,
“日期”:空,
“注释”:空
}
API RAML
/{purchaseId}:
uri参数:
购买编号:
类型:字符串
描述:购买的 ID
必填:真实
示例:“4”
得到:
displayName:获取单次购买
描述:获取单次购买记录
回应:
200:
描述:状态 200
body :
应用程序/json:
类型: 购买
示例:!include 示例/get_purchase_example.json
400:
描述:状态 400
body :
应用程序/json:
类型:错误
数据库架构
我不应该得到 HTTP 代码 404 或 400 吗?
最佳答案
在一个天真的世界中,是的,404 是“合乎逻辑的”。在第三方、截止日期、不准确的文档和“战术解决方案”的现实世界中,404 错误消息将被视为客户端/服务被破坏,因为不可能区分“服务器丢失”和“结果是失踪”。
200 与空响应是实现“我在这里,但你要求的不在”的良好而流畅的方式
关于mysql - 查询不存在的记录,返回 null,HTTP 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51419026/