我正在开发一个由用户的管理面板(用户,角色等)组成的网络应用程序。到目前为止,我的网址是这样的:
/ myapp / admin / users - >返回用户表的视图 / myapp / admin / roles - >返回角色表的视图 .. ..
返回数据的请求,如下所示: / MYAPP /管理/ getRoles / MyApp的/管理/的getUser?用户名= XX
但我最近开发了一个REST服务,我的思想发生了一些变化。我想包括url,例如/ users / username等。
哪些是包含返回不同类型数据的网址的最佳做法? (html views,json ..)
也许包括这样的扩展名?
/myapp/admin/users.jsp - >返回用户表的视图 / myapp / admin / users - >返回带有用户的json
我还没有看到的另一件事是很多人使用的.go和.do扩展名。
我有以下视图解析器:
<!-- Defining which view resolver to use -->
<bean class= "org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
我请求/myapp/admin/users.jsp但返回404.这是我的servlet映射:
<servlet-mapping>
<servlet-name>AdminPanel</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我是否需要直接在控制器中定义扩展名?
@RequestMapping(method = RequestMethod.GET,value =“/ users.jsp”) - &gt; VIEW @RequestMapping(method = RequestMethod.GET,value =“/ users”) - &gt; DATA
该解决方案是最佳做法吗?
我会赞美并投票给所有有用的答案。谢谢
答案 0 :(得分:1)
扩展是一种流行的选择,但RESTful方式是通过Content Negotiation
。请求者会在Accept
标题中加入他们可以接受的格式,例如text/html
或application/json
。服务器将选择一种提供的格式并使用该格式返回响应。