Udemy 課程Microservices with Spring 24

Richardson Maturity Model(Restful成熟度模型)與部份總結

ZONGRU Li
2 min readJul 10, 2019

不一定說要達到最後一級才是可以使用的Restful API

只是方便評定Restful等級,或方便升級API

0級:

此層級的API不可以算是 Rest API,而是僅把HTTP當作傳輸協議,毫無資源(Resource)概念,並暴露應用了Rest格式的SOAP webservice,例如下列的url

http://server/getPosts

http://server/deletePosts

http://server/doThis

上面URL沒有顯示我背後是有什麼資源

是User資料?

是帳號資料?

還是待做事項(todo)資料?

完全無從得知

1級:

http://server/accounts

http://server/accounts/10

開始有了資源(Resource)的概念

由url可以知道我是在針對帳號(accout)相關的操作

但是仍未使用適當的Http Method!!

2級:

1級+使用洽當的Http Method

刪除account則帶的Http Method就用DLETE

新增時的Http Method就用POST...以此類推

3級:

2級+HATEOAS(hyper media as the engine of application state)

除了該API應回傳的資料或訊息外,另外還帶了可能會需要用到的API資訊等

方便取用API者看到回傳訊息後,方便有更進一步的動作

部份總結:

  1. 開始真正專案前,釐清User的需求
  2. 使用正確的HTTP Method:

GET

POST

PUT

DELETE

3. 使用正確的RESPONSE STATUS EX:

200 — SUCCESS

404 — RESOURCE NOT FOUND

400 — BAD REQUEST

201 — CREATED

404 — UNAUTHORIZED

500 — SERVER ERROR

4. URI中不帶有資安風險的訊息

5. 為了更容易理解,多使用複數型 EX:

/users 比 /user好

/users/1 比 /user/1 好

6. 針對RESOURCE時,盡量使用名詞(當然不一定所有情況都可以做到) EX:

PUT /gists/{id}/star

DELETE /gists/{id}/star

7.最重要,需再強調User/Consumer First!

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet