【发布时间】:2014-12-30 17:37:00
【问题描述】:
我有一组 REST 服务,它们都遵循相同的 URL/动词模式。
其中一些没有实现 URL/动词的某些无关紧要的组合。
由于使用这些服务的应用程序事先不知道执行了哪些操作,因此它必须动态发现未执行的操作。
我看到了两种方法:
- 请求操作时发送 501 Not Implemented
- 设置 OPTIONS 支持,以便服务可以声明它们支持的内容
目前第一种方法似乎更好,因为它更容易实现,并且对肯定情况的请求更少(考虑到 OPTIONS 不可缓存)。
这种方法在技术上有什么问题吗?
【问题讨论】:
-
当服务器根本没有实现方法/动词时应该返回 501。如果单个 URL 不支持其他 URL 支持的方法/动词,则应返回 405“方法不允许”。不过,接受的答案仍然是正确的:-)