如何处理服务器端的资源检查?例如,我的 api 看起来像:
/books/{id}
Run Code Online (Sandbox Code Playgroud)
谷歌搜索后我发现,我应该使用 HEAD 方法来检查资源是否存在。 https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
我知道,我可以使用 GET 端点并使用 HEAD 方法来获取有关资源的信息,并且在这种情况下服务器不会返回正文。
但是我应该在服务器端做什么?我有两个选择。
一个端点标记为 GET。我这个端点我可以使用 GET 方法来获取数据和 HEAD 来检查资源是否可用。
两个端点。一个标记为 GET,第二个标记为 HEAD。
为什么我要考虑第二种解决方案?让我们假设,GET 请求从数据库中获取一些数据并以某种方式处理它们,这需要一些时间,例如。10 毫秒
但我真正需要的只是检查数据库中是否存在数据。所以我可以运行查询
select count(*) from BOOK where id = :id
Run Code Online (Sandbox Code Playgroud)
如果查询结果等于 1,则立即返回状态 200。在这种情况下,我不需要处理数据,因此响应时间更快。
但是...... REST 中的资源是一个通过 HTTP 传输的对象,所以也许我应该处理数据而不是在我使用 HEAD 方法时返回它们?
预先感谢您的回答!
rest ×1