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大多只使用get\post。然后定義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 非冪等,get\delete\put\patch為冪等

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM