REST:返回'方法不允许'或不执行方法?

时间:2016-09-05 11:50:31

标签: rest symfony

我正在为我的Symfony应用程序构建一个安静的API。

我有一个无法通过API创建的资源,所以我的第一个想法是不创建POST方法/ URI。但现在我想知道是否创建POST方法并手动抛出405 Method Not Allowed并不是一个好主意。

有人知道最佳解决方案吗?

1 个答案:

答案 0 :(得分:2)

在其他框架中 - 例如在Java中使用spring或者在python中使用django rest框架 - 它是自动完成的。如果未列出HTTP方法,则框架将自动返回405 Method Not Allowed。这非常有用。

就我个人而言,我会手动处理它 - 我的意思是返回405 Method Not Allowed - 以明确错误。这不是路由不存在的情况,因此404 Not Found是一个糟糕的选择。它确实存在,但不提供POST

即使403 Forbidden也会比404 Not Found好得多。