我正在尝试使用springMVC
构建一个restful样式API。
为springMVC的DispatcherServlet
配置url-pattern时,似乎有两个选择,我需要一些建议。
选择A:
配置模式为:<url-pattern>*.action</url-pattern>
和行动使用@RequestMapping("/role/add.action")
选择B:
配置模式为:<url-pattern>/api/*</url-pattern>
和行动使用@RequestMapping("/api/role/add")
我更喜欢使用没有后缀的样式,但在这种情况下我需要添加子路径。
但是我不确定哪个更适合在作为后端的项目中使用,以浏览器/ IOS / Android作为其客户端提供宁静的API。
可能有选择C ,但我不确定:
配置模式为:<url-pattern>/*</url-pattern>
和行动使用@RequestMapping("/role/add")
在这种情况下,内置servlet将被覆盖,例如jsp将无法正常工作
但是我没有任何jsp
,而且html / js / css / image / document / music / video
这样的静态资源都放在nginx
服务的另一个端口或服务器上,对tomcat的请求只通过json数据提供ajax服务。
那么在这种情况下使用选择C是否合适,或者它有一些不良的副作用?
答案 0 :(得分:3)
对于RESTful服务,我将使用选择B ,考虑使用CRUD
执行REST
操作。您可以将url-pattern
映射为
config pattern as: <url-pattern>/api/*</url-pattern>
因此,要执行添加,您只需确保从页面发布JSON对象并拥有类似/api/add
的网址
如果是删除,您可以简单地遵循相同的规则。考虑您要使用其ID从列表中删除object
。你可以简单地把它做成,
/api/delete/${id}
并像处理它一样,
@RequestMapping(value="/{id}", method=RequestMethod.GET)