在Play中返回RESTful响应代码
我刚刚开始使用REST,我一直在阅读这篇文章和上面提到的关于REST响应代码的书。但是,当我查看Play的Controller类时,它似乎仅限于返回
200 - 好的
301 - 永久移动
302 - 发现
304 - 未修改
400 - 错误请求
401 - 未授权
403 - 禁止
404 - 未找到
5XX
这似乎遗漏了一些可能有用的代码:
201 - 创建(成功JSON帖子的良好响应?)
202 - 已接受(对于排队请求)
204 - 无内容(成功PUT / POST / DELETE的可能响应)
307 - 临时重定向
405 - 不允许的方法
406 - 不可接受
409 - 冲突
410 - 走了
415 - 不支持的媒体类型(当没有定义JSON模板时,这似乎是对JSON格式请求的适当响应)
毕竟不需要那些吗? Play会自动处理这些情况吗?
此外,似乎一个控制器无法很好地处理相同资源的REST请求和正常网页请求,因为网页总是以
200
返回。我错过了什么吗?
没有找到相关结果
已邀请:
2 个回复
苦诫
对象的播放源代码(播放1.1),播放似乎具有以下代码
这将表示确认您已识别的某些代码,例如201,202,204。但是,值307,405,406,409,410和415不存在。 此外,201,202,204被确认,但未在源代码中的任何其他地方引用。因此,除非Netty服务器或其中一个提供的jar文件正在管理Play(我不确定它可以做),我无法看到Play如何在不知道代码库的情况下神奇地处理这些情况。 查看renderJSON的代码,它似乎没有将状态代码设置为发送结果的一部分(因此使用默认值200),因此以下hack可能有效。
捻盒愧杯
。例:
在Scala中,它应该像在官方文档中获取的示例一样工作: