当前位置: 首页 > 知识库问答 >
问题:

API是否应该为api/对象返回404状态?filter=参数?

程胤运
2023-03-14

如果找不到记录,则必须为 api/对象返回哪个 HTTP 状态?我看到以下变体:

  • 返回404
  • 返回200和空白响应,例如{}

我没有找到ruby社区的惯例。什么是最佳实践?

共有1个答案

司徒胤
2023-03-14

你可以在这里深入探讨:空表的正确REST响应?

如果您使用搜索参数调用“索引”endpoint,我认为使用空对象重放200是正确的

    < li >请求:< code >用户?年龄=18岁 < li >响应:代码200,正文{}

但是如果您正在调用“显示”endpoint,您应该返回404

  • 要求: 用户/1
  • 响应:代码 404
 类似资料:
  • 我的问题是:用“async”定义一个返回“promise”的函数(形式上)正确吗?是否容易出现“内存泄漏”? 对于那些喜欢用自然语言阅读我用js发布的内容的人。 我正在给一个知道JS是如何真正实现的人打电话,然后知道引擎是如何管理我提出的场景的:我们应该避免对返回“promise”的函数使用“async”吗? 我提出的问题不会改变任何人的生活,最终也不会影响表演。事实是,在编写代码时,我喜欢关注代

  • 在构建API时,编写接口代码是一个很好的实践,因此返回CompletionStage似乎是一个最好的方法。然而,我意识到我碰巧总是在获得CompletionStage之后调用.ToCompletableFuture。在这种情况下,推荐的方法是什么?

  • 这方面的最佳实践是什么。NET与Web API?特别是WebRESTAPI。当异常发生时,RESTAPI是否应该在响应体中返回异常? 当然,我会返回500或类似的HTTP状态。但是当我用这个错误代码响应时,最佳实践是什么?或者更好的是,规范或RESTAPI对此有何规定? 返回异常(我所做的)

  • 我在路径“/test”中有一个无用的endpoint: 我这样测试: 但我得到一个断言错误: 预期状态代码 这发生在更多的代码中:400,500...除了200。 我用的是Spring靴。如果在运行测试时在endpoint方法中放置断点,则执行将停止,因此测试中的请求将正确完成。如果我将状态代码(在资源和测试中也是)更改为200,则测试通过。 到底发生了什么?

  • 我有一个Restendpoint,如果没有产品,它将返回204,以及以下通用角度服务: 和 但是,当服务生成 204 代码时,我收到以下错误: TypeError:无法读取null的属性“status” 这怎么可能发生?如果 API 以 204 响应,为什么整个响应为空?

  • 可选类应该改变它持有的对象的状态吗?或者每个返回流的中间操作都不应该改变对象的可变性?示例: 当包含实例变量时,是否应用相同的原则。例如