前后端分离的springmvc和RESTful
Posted 诗语七夜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前后端分离的springmvc和RESTful相关的知识,希望对你有一定的参考价值。
REST是一个“无状态”的架构模式,因为在任何时候都可以由客户端发出请求到服务端,最终返回自己想要的数据,当前请求不会受到上次请求的影响。也就是说,服务端将内部资源发布REST服务,客户端通过URL来访问这些资源,这不就是SOA所提倡的“面向服务”的思想吗?所以,REST也被人们看做是一种“轻量级”的SOA实现技术,因此在企业级应用与互联网应用中都得到了广泛应用。
下面是一些例子。
GET/zoos:列出所有动物园
POST / zoos:新建一个动物园
GET / zoos / ID:获取某个指定动物园的信息
PUT / zoos / ID:更新某个指定动物园的信息(提供该动物园的全部信息)
PATCH /zoos / ID:更新某个指定动物园的信息(提供该动物园的部分信息)
DELETE /zoos / ID:删除某个动物园
GET / zoos / ID/ animals:列出某个指定动物园的所有动物
DELETE /zoos / ID/ animals / ID:删除某个指定动物园的指定动物
下面是一些常见的参数。
?limit=10:指定返回记录的数量
?offset=10:指定返回记录的开始位置。
?page=2&per_page=100:指定第几页,以及每页的记录数。
?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
?animal_type_id=1:指定筛选条件
针对不同操作,服务器向用户返回的结果应该符合以下规范。
GET/collection:返回资源对象的列表(数组)
GET/collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档或者返回true orfalse
下面看下springmvc后台接口如何写:
@RequestMapping(value = "/get/zoos",
method =RequestMethod.GET)
@ResponseBody
public RtnData get() {
//...
}
@RequestMapping(value = "/post/zoos",
method =RequestMethod.POST)
@ResponseBody
public RtnData post(Zoos zoos) {
//...
}
@RequestMapping(value = "/get/zoos/{id}",
method =RequestMethod.GET)
@ResponseBody
public RtnData getById(@PathVariable("id") String id){
//...
}
@RequestMapping(value = "/put/zoos/{id}/{name}",
method =RequestMethod.PUT)
@ResponseBody
public RtnData put(@PathVariable("id") String id,
@PathVariable("name") String name) {
//...
}
@RequestMapping(value = "/delete/zoos/{id}",
method =RequestMethod.DELETE)
@ResponseBody
public RtnData delete(@PathVariable("id") String id){
//...
}
@RequestMapping(value = "/get/zoos/{id}/animals",
method =RequestMethod.GET)
@ResponseBody
public RtnData getAnimals(@PathVariable("id") String id){
//...
}
参考:
http://www.runoob.com/w3cnote/restful-architecture.html
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
以上来自一位暴走的女程序员
我这么可愛你忍心不点赞吗
以上是关于前后端分离的springmvc和RESTful的主要内容,如果未能解决你的问题,请参考以下文章