zoukankan      html  css  js  c++  java
  • restful api接口

    一、介绍

    传统api:

    http://ip:port/getBook

    http://ip:port/addBook

    http://ip:port/delBook

    restful 风格api:

    GET请求 http://ip:port/book

    POST请求 http://ip:port/book

    DELETE请求 http://ip/port/book

    我的理解restful就是面向对象,把每个资源都看成一个对象,形成一个唯一的URI。然后结合http方法进行各种curl操作。

    结合上面两个示例,非restful api大多只使用getpost。然后定义api时以动词+名词结合使用。

    而restful api的格式是URI上只有名词,不存在动词。区分不同的操作以http自定义的方法区分:

    查看 GET

    新增 POST

    删除 DELETE

    局部更新 PUT

    全部更新 PATCH

    二、代码范例


    @org.springframework.web.bind.annotation.RestController
    @RequestMapping("/bookPack/book")
    public class RestController {

    @RequestMapping(method = RequestMethod.GET)
    public void get(){

    System.out.println("get book");
    }

    @RequestMapping(method = RequestMethod.POST)
    public void post(){

    System.out.println("post:add a new book");
    }

    @RequestMapping(method = RequestMethod.PUT)
    public void put(){

    System.out.println("put :replace(create or update) a book");
    }

    @RequestMapping(method = RequestMethod.PATCH)
    public void patch(){

    System.out.println("patch: update a part of a book");
    }

    @RequestMapping(method = RequestMethod.DELETE)
    public void delete(){

    System.out.println("delete a book");
    }

    }

    该段示例代码就是将书包中书作为一个资源对象,匹配的资源URI就是/bookPack/book,
    对应的各种curl其实就是不同的http方法予以区分,访问的api都是一样的。
    至于使用哪种http方法,这个要结合业务使用,不要被方法名所迷惑,要结合实际使用场景。

    三、http方法
    get:获取方法。幂等
    post:新增,非幂等
    delte:删除,幂等
    put:全更新,幂等。如果参数不全,不传的参数将修改为null
    patch:部分更新,幂等。如果参数不全,只更新传参数的部分

    四、幂等
    幂等就是不管执行多少次重复操作,最后结果保持不变。
    结合使用效果可以看出 http方法:post 非幂等,getdeleteputpatch为幂等
  • 相关阅读:
    win10 开机背景图
    关于在不知道具体实例化哪个窗体时调用该窗体公共变量的方法
    devexpress 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 “lc.exe”已退出,代码为 -1。
    获取打印机设置的纸张参数
    mysql 添加字段语句
    curl模拟post请求
    php CI框架log写入
    winform程序更新
    JSP的EL和JSTL解析
    报错:java.lang.IllegalArgumentException: object is not an instance of declaring class
  • 原文地址:https://www.cnblogs.com/jybky/p/11959278.html
Copyright © 2011-2022 走看看