Overwrite HTTP method with JAX-RS

拜拜、爱过 提交于 2019-12-20 03:50:41

问题


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 overwrite 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?


回答1:


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.




回答2:


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




回答3:


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



来源:https://stackoverflow.com/questions/2832901/overwrite-http-method-with-jax-rs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!