更新時間:2021-08-10 12:41:33 來源:動力節(jié)點 瀏覽1181次
URI規(guī)范:
用中杠-,不用下劃線_
路徑中不能有動詞,只能有名詞
不用大寫
名詞表示資源集合,要使用復(fù)數(shù)形式
URI:在RESTful架構(gòu)中,每個URI代表一種資源
通過標(biāo)準(zhǔn)HTTP方法對資源進行CRUD(將服務(wù)行為映射到標(biāo)準(zhǔn)HTTP動詞)
CRUD:增加(Create)、檢索(Retrieve)、更新(Update)和刪除(Delete)幾個單詞的首字母簡寫
GET(SELECT):從服務(wù)器取出/請求資源
PUT(UPDATE):在服務(wù)器更新資源
POST(CREATE):在服務(wù)器新建資源
DELETE:從服務(wù)器刪除資源
使用HTTP狀態(tài)碼來傳達服務(wù)調(diào)用的狀態(tài)
使用JSON作為微服務(wù)提交和返回數(shù)據(jù)的通用語言
示例:
服務(wù)器維護資源如下(使用一張表存用戶信息) 一般每種資源都會設(shè)計字段id來做唯一標(biāo)識,便于請求資源
User {
int id;
int age;
bool sex;
String phone;
role String;
...
}
該資源的URI設(shè)計為 ip:port/service-name/users
獲取全部用戶的信息 GET ip:port/service-name/users
創(chuàng)建一個用戶 POST ip:port/service-name/users
獲取某個用戶的信息 GET ip:port/service-name/users/id
修改某個用戶的信息 PUT ip:port/service-name/users
刪除某個用戶的信息 DEL ip:port/service-name/users/id
錯誤設(shè)計如下:
創(chuàng)建一個用戶 POST ip:port/service-name/users/add
獲取某個用戶的信息 GET ip:port/service-name/users/id/get
修改某個用戶的信息 PUT ip:port/service-name/users/change
有時請求中需要帶有很多條件,這些條件可以放在RequestParam(query)里。
比如用戶管理B端,做分頁展示時,如果每頁展示20個用戶,接口的設(shè)計可能為 GET ip:port/service-name/users?offset=xxx&limit=20
比如返回所有管理員權(quán)限的用戶,接口的設(shè)計可能為 GET ip:port/service-name/users?role=admin
當(dāng)然,上述只是規(guī)范,實際開發(fā)中可能會有很多api的設(shè)計會突破RESTful規(guī)范。
冪等:請求一次和請求多次的效果是一樣的。
GET:由于GET請求僅僅是獲取資源 并不修改資源,所以能保證冪等
PUT:同樣的請求,修改一次和修改多次是一樣的,能保證冪等
DEL:同理,能保證冪等。但是多次請求,只有第一次能返回200,其他都應(yīng)該是404
POST:不冪等,多次請求會在數(shù)據(jù)庫表中生成多條記錄
以上就是動力節(jié)點小編介紹的"微服務(wù)接口設(shè)計RESTful規(guī)范",希望對大家有幫助,想了解更多可查看Java教程。動力節(jié)點在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。
0基礎(chǔ) 0學(xué)費 15天面授
有基礎(chǔ) 直達就業(yè)
業(yè)余時間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)
初級 202925
初級 203221
初級 202629
初級 203743