allow POST, PUT or DELETE to return content
-------------------------------------------

                 Key: WW-3303
                 URL: https://issues.apache.org/struts/browse/WW-3303
             Project: Struts 2
          Issue Type: Improvement
          Components: Plugin - REST
    Affects Versions: 2.2.x
         Environment: this problem involve any environment
            Reporter: Luca Marrocco
            Priority: Minor
         Attachments: allow-content-for-POST-PUT-DELETE.patch

currently return a content from a request using POST, PUT or DELETE method is 
explicit ignored by DefaultContentTypeHandlerManager:
// Don't return any content for PUT, DELETE, and POST where there are no errors
if (!statusNotOk && !"get".equalsIgnoreCase(req.getMethod())) {
  target = null;
}

many time expecially in ajax application that use restful webservice endpoints 
required that returned content from those request had some information. This 
help client to reduce the network usage. So the client don't need to do 2 
request to update a content and retrive updated content.

for instance DELETE /items/1 can responde with information usegul to the client:
{ movingTo: "/archived-items/1", status: "archiving" }

in general would be responsability of protocol implementation chose right 
content to return back to the client. Or in other world developer need to have 
freedom to chose to return back a content or not.

to complete the description of this issue i report here some excerpt of HTTP 
1.1 specification where is described that those method request should return a 
content (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5):
* POST, "The action performed by the POST method might not result in a resource 
that can be identified by a URI. In this case, either 200 (OK)_ or 204 (No 
Content) is the appropriate response status, depending on whether or not the 
response includes an entity that describes the result."
* PUT, rfc do not explicit disallow returning a content
* DELETE, "A successful response SHOULD be 200 (OK) if the response includes an 
entity describing the status, 202 (Accepted) if the action has not yet been 
enacted, or 204 (No Content) if the action has been enacted but the response 
does not include an entity. "

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to