我该如何处理资源上不受支持的动词?

时间:2010-07-01 23:58:38

标签: http rest

我正在开发一个RESTful框架,并决定如何处理针对资源调用的不受支持的动词。例如,某人试图将PUT转换为只读资源。

我最初的想法是404错误,但错误不是资源无法找到,它存在,只是用户试图错误地使用资源。有更合适的错误代码吗?这种情况最常见的处理方式是什么?

2 个答案:

答案 0 :(得分:11)

你只是不支持某个动词即删除吗?在这种情况下,如果有人使用您不支持的动词,我将使用以下HTTP响应代码。

  • 405方法不允许

    使用该资源不支持的请求方法请求资源; [2]例如,在需要通过POST呈现数据的表单上使用GET,或者在只读资源上使用PUT。 [source]

答案 1 :(得分:0)

如果使用了错误的动词,我认为您根本不会收到对您的应用的请求(但这可能取决于您在服务器端使用的特定技术)。

为了对可能混淆的客户端连接尝试更有帮助,我想你可以为每个常见错误的动词,方法组合创建存根端点/操作,然后发回一个友好的“使用{verbname}代替此请求”文本响应,但我个人只是花了一些时间在更好的开发者文档中:)

在这些情况下,你也可以无缝地重定向到正确的行动......