我正在使用 Play 框架(Scala 变体)版本 2.1.1 编写 RESTful Web 服务。
对于给定的资源,我希望能够处理 POST 请求,但对于任何其他方法,我希望返回 MethodNotAllowed 响应。
我的路线文件尝试(片段):
# Item-related actions
POST /item controllers.ItemController.newItem
GET /item controllers.ApplicationController.methodNotAllowed
PUT /item controllers.ApplicationController.methodNotAllowed
DELETE /item controllers.ApplicationController.methodNotAllowed
HEAD /item controllers.ApplicationController.methodNotAllowed
OPTIONS /item controllers.ApplicationController.methodNotAllowed
PATCH /item controllers.ApplicationController.methodNotAllowed
但我在 Play 控制台中收到警告:
[warn] /home/bruno/Entwicklung/pServer/conf/routes:8: unreachable code
[warn] PUT /itemcontrollers.ApplicationController.methodNotAllowed
为什么几个不同的路由会呈现一些“无法访问的代码”?我知道反向解析机制应该有一套明确的规则,以便在没有歧义的情况下运行,但是我现在感兴趣的直接机制应该是开箱即用的。或不?
因为从我的角度来看,这种情况在编写 REST 服务时一定很常见,所以我确定我在这里遗漏了一些重要的东西。
如果您对解决此问题的最佳方法有任何建议,我将不胜感激。