将数据(对象)添加到Jersey(Restful)响应POST?

时间:2012-01-04 12:43:51

标签: rest jaxb jersey

我想获取一个依赖于客户端发送的另一个对象的对象。因此,在正常情况下,我应首先POST初始对象,然后检索它以构造最终对象并使用GET方法获取它。如果没有会话我该怎么办? (我们在RESTful应用程序中)。

是否可以在使用Jersey的POST请求的响应中添加一个Object(XmlElement)? 我想避免做2次操作(POST,然后GET)。  它与HTTP协议相矛盾吗?

1 个答案:

答案 0 :(得分:1)

使用POST,您可以获取输入文档并生成输出文档,并且不需要任何类型的会话。 POST动词真的只是意味着“用这个做点什么”;它的含义远不如GET,PUT或DELETE。但是,如果处理操作可能需要“很长时间”(这是一个模糊概念),那么最好创建一个资源来响应跟踪处理并将客户端重定向到该资源的POST;这样,他们可以在结果可用后获取结果。是否使用会话来管理资源存在取决于你,但我根本不推荐它;访问控制应该由用户身份确定是否涉及会话,并且处理资源应该对任何询问(并且被授权)的人可用。您可能需要仔细考虑管理半瞬态资源(例如,数据库和到期策略)所涉及的内容,并仔细考虑这些事项来设计整个应用程序。