查询不存在的记录,返回null和http 200

5fjcxozz  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(408)

我有点困惑。我执行一个简单的 SELECT 向mysql数据库查询一个不存在的记录,并得到每个元素都为null的http200响应。查询是通过restfulapi执行的,我还在开发这个api。也许我遗漏了什么,例如,一个响应代码的定义?
分贝

查询 SELECT * FROM csv_data.data WHERE id = 20 响应(http 200 ok) { "id": null, "purchase": null, "price": null, "date": null, "notes": null } api raml公司 /{purchaseId}: uriParameters: purchaseId: type: string description: Id of a purchase required: true example: "4" get: displayName: Get a single purchase description: Gets a single record of purchase responses: 200: description: Status 200 body: application/json: type: Purchase example: !include examples/get_purchase_example.json 400: description: Status 400 body: application/json: type: Error 数据库架构

我不应该得到http代码404或400吗?

sg3maiej

sg3maiej1#

在一个天真的世界里,是的,404是“合乎逻辑的”。在第三方、截止日期、不准确的文档和“战术解决方案”的现实世界中,404错误消息将被视为客户机/服务被破坏,因为无法区分“服务器丢失”和“结果丢失”。
一个空洞的回答是一个很好的和顺利的方式来实现“我在这里,但你要求的不是”

noj0wjuj

noj0wjuj2#

http状态为400表示请求错误。
http状态404表示找不到。
这两种方法都不适用于您的情况,因为您的请求正确地到达了预期要到达的api并执行了预期要执行的函数。
你的mysql请求没有结果,所以你有两个选择。第一种是返回404状态码,另一种是实现一个用户友好的逻辑错误句柄,并在出现逻辑错误时应用它。

相关问题