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为幂等
  • 相关阅读:
    leetcode 122. Best Time to Buy and Sell Stock II
    leetcode 121. Best Time to Buy and Sell Stock
    python 集合(set)和字典(dictionary)的用法解析
    leetcode 53. Maximum Subarray
    leetcode 202. Happy Number
    leetcode 136.Single Number
    leetcode 703. Kth Largest Element in a Stream & c++ priority_queue & minHeap/maxHeap
    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
    正则表达式
    十种排序算法
  • 原文地址:https://www.cnblogs.com/jybky/p/11959278.html
Copyright © 2011-2022 走看看