rest - 当底层资源不允许 GET 时使用 HTTP HEAD 方法
问题描述
我们有一个支持超链接的 REST API。通过我们的自动化测试,我们可以遍历响应中的所有链接并检查它们是否正确,即是否实际可达。为此,我们目前使用 HEAD HTTP 方法。现在,规范指出 HEAD 本质上应该像 GET 一样,但没有主体。到目前为止,一切都很好。
但是,我们也有一些仅支持 DELETE 或 PUT,但不支持 GET 的端点。
问题是:如果我们也用 HEAD 检查这些端点,它仍然有效 HTTP - 甚至有意义吗?当然在这种情况下不应该有任何副作用,测试的目的本质上只是:“端点,你是否还活着并且可以到达”?
有什么想法(或替代方案)?
解决方案
问题是:如果我们也用 HEAD 检查这些端点,它仍然有效 HTTP - 甚至有意义吗?
是的,这很有意义。
405 Method Not Allowed是你的盟友,它为你提供了一种方法来区分不可读的资源和没有表示的资源 (404)。
广泛的原则是,在 REST 中,所有资源都以相同的方式理解相同的方法。所以 HEAD 始终是一个合理的选择。
推荐阅读
- python - QThread:使用 GUI python 进行线程化
- azure - 如何将多个 json 文件导入/上传到 Azure Devops Pipeline Release and Builds?
- python - 不和谐.py | 如何获取公会中所有语音频道的列表
- three.js - 编辑器中 MeshStandardMateiral 中的模糊 envmap
- android - 将 .gradle 文件夹包含到我的 gitignore 中是否安全?如果是这样,为什么它不包含在由 flutter create myapp 命令生成的默认 gitignore 文件中
- javascript - 不同浏览器中的日期输入格式
- javascript - 一段jQuery代码来启用类选择器?
- javascript - 最佳实践:依赖于异步获取外部数据的 Javascript 类
- github - 减小 pytorch 库的大小
- reactjs - 是否可以在父组件上显示道具?