mysql - 查询不存在的记录,返回 null,HTTP 200

标签 mysql sql rest api mule

我有点困惑。我对 MySQL 数据库执行一个简单的 SELECT 查询来查找一条不存在的记录,并获得每个元素都为 null 的 HTTP 200 响应。查询是通过 RESTful API 执行的,该 API 仍在由我开发。也许我错过了一些东西,例如响应代码的定义?

数据库

enter image description here

查询

选择* 来自 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: 类型:错误

数据库架构

enter image description here

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

最佳答案

在一个天真的世界中,是的,404 是“合乎逻辑的”。在第三方、截止日期、不准确的文档和“战术解决方案”的现实世界中,404 错误消息将被视为客户端/服务被破坏,因为不可能区分“服务器丢失”和“结果是失踪”。

200 与空响应是实现“我在这里,但你要求的不在”的良好而流畅的方式

关于mysql - 查询不存在的记录,返回 null,HTTP 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51419026/

相关文章:

java - 如何使用 2 个表获取订阅者数量

mysql - 数据CRUD操作的理论基础

PHP MySQL 查询不工作

mysql时间格式仅获取小时和分钟

MySQL 查询获取属于某个组织的所有用户

javascript - 如何处理响应对象中的错误

angular - 将字符串类型从 Spring Boot 返回到 Angular

sql - Elixir PostgreSQL - 选择查询返回不符合 WHERE 子句的结果

sql - 如何按用户名查找最后 10 个 oracle 查询?

java - Java 中的 REST 调用