rest - 来自 Api 的 Http 请求处理的最佳方法
问题描述
当我们尝试添加、删除、创建、更新等时,基本数据库操作的 api 返回值的最佳实践是什么?
1-(如果存在这些操作最合适的状态码是什么?)只返回相应的http状态码?(例如,删除操作返回204,创建操作返回201,“数据不存在”返回500等)
2-返回布尔值
3-返回自定义异常
很快,假设我们有项目A并且它正在使用项目B的 api 。并且B试图从db中删除一条具有特定id的记录,但是db中不存在这个id。对于这种情况,我们应该怎么做?
解决方案
1-(如果存在这些操作最合适的状态码是什么?)只返回相应的http状态码?(例如,删除操作返回204,创建操作返回201,“数据不存在”返回500等)
返回 204 用于删除和 201 用于创建绝对没问题,但请尝试从请求者的角度考虑什么是最具描述性的响应代码。另外,请记住,500 响应代码用于服务器端出现问题(例如意外异常)时。
很快,假设我们有项目A,它正在使用项目B的api。B试图从db中删除一条具有特定id的记录,但是这个id在db中不存在。对于这种情况,我们应该怎么做?
再次考虑一下对请求者最有帮助的错误。404 Not Found将准确描述操作失败的原因。如果您想让它更具描述性,您可以在响应正文中放置一条错误消息 - 但您不必这样做。
推荐阅读
- swift - 如何在swift中进行函数回调
- node.js - 如何解决 Google App Engine 上 VueJs / Express / Mongo 应用程序的 API 响应的“启用 Javascript”错误
- python - 我可以从 Django views.py 中的另一个函数调用一个函数吗?
- python - 为什么要将 RNN/LSTM 的训练和测试数据用于股票预测?
- laravel - 表会话 laravel 中的 user_id 用于多守卫
- swift - 将旋转的 NSImageView 作为子视图的 NSView 保存到 pdf 文件的问题 - NSImageView 未旋转
- python - (堆叠)带有单独标记观察的直方图
- java - 从异步改造调用响应填充列表的问题
- android - 当我有内容 uri 时,如何获取有关文件的完整详细信息?
- spring - Spring Boot 安全性 + JWT