开发者

Overwrite HTTP method with JAX-RS

Today's browsers (or HTML < 5) only support HTTP GET and POST, but to communicate RESTful one need PUT and DELETE too. If the workaround should not be to use Ajax, something like a hidden form field is required to overwri开发者_开发问答te the actual HTTP method.

Rails uses the following trick:

<input name="_method" type="hidden" value="put" />

Is there a possibility to do something similar with JAX-RS?


Not strictly a JAX-RS solution but spring 3.0 comes with a HiddenHttpMethodFilter that implements exactly the trick that rails does, defaults to the same _method parameter.

Note that you don't need to be using all of spring to use this filter, you can just configure it in your web.xml and ignore the rest of spring.


Jersey also has something similar, filtering a header field though. Documentation can be found here


To quote Roy Fielding:

In any case, there are plenty of RESTful services that do nothing but GET and POST. The key is how those methods are used, not what methods are used. To give a specific example, what makes a wiki more or less RESTful is almost always determined by how it (ab)uses GET and sessions -- whether it uses PUT or POST for editing pages is sugar topping in comparison.

Emphasis is mine, taken from this post http://tech.groups.yahoo.com/group/rest-discuss/message/10746

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜