小编Jad*_*orr的帖子

REST 检查资源是否存在,服务器端如何处理?

如何处理服务器端的资源检查?例如,我的 api 看起来像:

/books/{id}
Run Code Online (Sandbox Code Playgroud)

谷歌搜索后我发现,我应该使用 HEAD 方法来检查资源是否存在。 https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

我知道,我可以使用 GET 端点并使用 HEAD 方法来获取有关资源的信息,并且在这种情况下服务器不会返回正文。

但是我应该在服务器端做什么?我有两个选择。

  1. 一个端点标记为 GET。我这个端点我可以使用 GET 方法来获取数据和 HEAD 来检查资源是否可用。

  2. 两个端点。一个标记为 GET,第二个标记为 HEAD。

为什么我要考虑第二种解决方案?让我们假设,GET 请求从数据库中获取一些数据并以某种方式处理它们,这需要一些时间,例如。10 毫秒

但我真正需要的只是检查数据库中是否存在数据。所以我可以运行查询

select count(*) from BOOK where id = :id
Run Code Online (Sandbox Code Playgroud)

如果查询结果等于 1,则立即返回状态 200。在这种情况下,我不需要处理数据,因此响应时间更快。

但是...... REST 中的资源是一个通过 HTTP 传输的对象,所以也许我应该处理数据而不是在我使用 HEAD 方法时返回它们?

预先感谢您的回答!

rest

9
推荐指数
2
解决办法
8750
查看次数

标签 统计

rest ×1