通過增刪改查直觀的對比:
傳統風格
查詢 /user/query?name=tom GET
詳情 /user/getInfo?id=1 GET
創建 /user/create?name=tom POST
修改 /user/update?id=1&name=jquery POST
刪除 /user/delete?id=1 GET
RESTful風格
查詢 /user?name=tom GET
詳情 /user/1 GET
創建 /user POST
修改 /user/1 PUT
刪除 /user/1 DELETE
Resultful特點:
1.使用URL描述資源
2.使用HTTP方法描述行為。使用HTTP狀態碼來表示不同的結果
3.使用json交互數據,傳統模式使用的是鍵值對形式
4.RESTful只是一種風格,並不是強制的標准。
例子:
刪除的服務接口
@DeleteMapping("/{id:\d+}")
更新的服務接口
@PutMapping("/{id:\d+}")
實例:
1.傳統URL請求格式:
http://127.0.0.1/user/query/1 GET 根據用戶id查詢用戶數據
http://127.0.0.1/user/save POST 新增用戶
http://127.0.0.1/user/update POST 修改用戶信息
http://127.0.0.1/user/delete GET/POST 刪除用戶信息
2.RESTful請求格式:
http://127.0.0.1/user/1 GET 根據用戶id查詢用戶數據
http://127.0.0.1/user POST 新增用戶
http://127.0.0.1/user PUT 修改用戶信息
http://127.0.0.1/user DELETE 刪除用戶信息
RESTful規范:
#定義接口的規范
# REST:表征性狀態轉移(Representational State Transfer)
#RESTful規范:web數據請求接口設計規范
#學習的目的:
#1.如何設計url鏈接地址
#2.如何設計響應的數據格式
'''
1)通常使用https請求
2)域名:有api關鍵字出現
-- https://api.baidu.com (可能涉及跨越問題)
-- https://baidu.com/api
3)版本:不同版本需要標注
-- https://example.com/api/v1 | -- https://example.com/api/1
-- https://example.com/api/v2 | -- https://example.com/api/2
4)資源:請求的目標數據稱之為資源,資源一般都用名詞復數表示
-- https://example.com/api/v1/books (之前不規范的案例: /get_books/)
5)操作方式:不從請求鏈接體現操作方式,從請求方式上決定操作方式
-- get:https://example.com/api/v1/books 獲取所有
-- post:https://example.com/api/v1/books 新增一本
-- put:https://example.com/api/v1/book/1 更新id=1的一本
-- patch:https://example.com/api/v1/book/1 更新id=1的一本
-- delete:https://example.com/api/v1/book/1 刪除id=1的一本
6)資源過濾:通過接口傳遞參數來過濾資源
-- https://example.com/api/v1/books?limit=10 限制10條
7)狀態碼:返回數據要標准狀態碼,通過在數據中 {"status": 0}
-- SUCCESS("0", "查詢成功")
-- NODATA("1xx", "非正確,無數據,顯示基本信息")
-- FEAILED("2xx", "查詢失敗")
8)錯誤信息:請求失敗需要標注錯誤信息 {"msg": "請求參數不合法"}
9)操作結果:請求操作成功的返回結果 {"results": []}
-- get:返回資源列表 | 返回單一資源
-- post:返回單一新增資源
-- put:返回更新的資源
-- patch:返回更新的資源
-- delete:返回空文檔
10)子資源返回資源接口:返回的資源如果有子資源,返回子資源的鏈接地址,如查找書,書的封面圖片就可以url表示
'''