http - 在 Servlet API 中使用 getRequestURL() 以在 Location header 中使用绝对 URL 进行响应是否是错误的形式?

标签 http rest grails servlets

我正在为我们的产品设计一个 RESTful API,并且遇到了异步操作的需求。几本书的建议是使用 202 响应代码并在 Location: header 中提供指向操作“状态”的链接。

在尝试在 Grails 环境中实现这一点时,开发人员建议使用 Grails 功能自动创建链接 (docs here)。问题是管理员必须在配置中定义 grails.serverURL(这只是另外一件容易出错的事情)。

我建议我们通过简单地将请求的资源“/rest/foo”替换为新创建的“状态”资源“/rest/bar/status-42”来使用请求来反射(reflect)适当的 URL。使用HttpServletRequest.getRequestURL()合适吗这样?如果是这样,您能否评论一下 getRequestURL() 的可靠性(我听说过令人不安的报告)?如果没有,为什么不,还有其他建议吗?

最佳答案

这不是坏的形式。我没有证据支持这一点,但没有人尖叫,“不!不!除了那个!”以及我链接到的 javadoc。如果结果证明这是个坏主意,我会在这里回复并更改我的答案:)

关于http - 在 Servlet API 中使用 getRequestURL() 以在 Location header 中使用绝对 URL 进行响应是否是错误的形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8751498/

相关文章:

ajax - 如何在golang中以标准方式从http请求中获取数据?

Spring MVC @RestController 和重定向

spring - Grails,将文件上传大小限制为几兆字节

testing - Grails 独特的测试失败?

grails - 在 Geb 中,displayed 和 present 有什么区别?

ruby-on-rails - 带有自定义 header 和正文的 Ruby POST?

javascript - 使用 jQuery 解析实时流 HTTP 分块传输 JSON?

AngularJs Controller ,等待服务 $http 结果

c# - 如何在 Nancy 中编写接受 JSON 的 post 方法以及如何从 C# 客户端调用它?

rest - 在所有情况下我都应该从 POST 返回实体吗?