前后端分离的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



前后端分离的springmvc和RESTful 以上来自一位暴走的女程序员

我这么可愛你忍心不点赞吗 前后端分离的springmvc和RESTful

以上是关于前后端分离的springmvc和RESTful的主要内容,如果未能解决你的问题,请参考以下文章

前后端分离之后添加验证码

前后端分离与 restful api

9-3 前后端分离与 RESTful 常见面试题

9-3 前后端分离与 RESTful 常见面试题

9-3 前后端分离与 RESTful 常见面试题

前后端分离:RESTful API和HTTP动词