[請益] RESTful API 身份設計問題
各位好,我正在設計公司的 RESTful api,遇到一個身份判定的問題有點卡住,想請教一下各位
假設我今天要拿到一個 team 裡面我這個 user 的 profile,該怎麼下比較好
1. teams/{team_id}/users/profile
2. teams/{team_id}/users/me/profile
3. teams/{team_id}/users/{user_id}/profile
會有這個問題是因為,一般 RESTful 都是表定是 me 了,登入後用在 header 的 token 拿取屬於你的資料
這個定義的情況下 1 感覺是最接近的,但 users 下沒有指定對象又感覺很怪,畢竟 users 是複數
假設 2 成立,那我 teams 想要一支 api 也透過 user_id 找其他人 profile 的話 3 跟 2 route 會打架
3 如果帶上自己 user_id 可以解決全部問題,但又失去了直接比對 jwt token 的便利性
for me: teams/{team_id}/me/profile
for someone: teams/{team_id}/users/{user_id}/profile
如果上述成立,另一個模組是 users,專門處理 user 的內容,以忘記密碼舉例
for me: users/me/forgot-password
for someone: users/{user_id}/forgot-password
這 route 又打架了 XD,不確定表達的好不好,目前就是卡在該怎麼在如何在 url 上可以明確看出這隻 api
對到的是你或者是某個指定對象,route 不衝突但也可以兼顧直接拿 jwt token 來用,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.234.173 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1611666924.A.6AB.html
※ 編輯: chan15 (122.116.234.173 臺灣), 01/26/2021 21:15:40
→
01/26 21:36,
3年前
, 1F
01/26 21:36, 1F
→
01/26 21:39,
3年前
, 2F
01/26 21:39, 2F
→
01/26 21:39,
3年前
, 3F
01/26 21:39, 3F
→
01/26 21:40,
3年前
, 4F
01/26 21:40, 4F
→
01/26 21:40,
3年前
, 5F
01/26 21:40, 5F
→
01/26 21:42,
3年前
, 6F
01/26 21:42, 6F
→
01/26 21:42,
3年前
, 7F
01/26 21:42, 7F
你好,2 跟 3 打架是指 route 的設計,teams/{team_id}/users/XXX/profile
雖然 XXX 有很多手腳可以動,譬如寫判斷 me 就是自己 me 以外是 uid 但我覺得變本末倒置
→
01/26 21:48,
3年前
, 8F
01/26 21:48, 8F
對,但 users/profile 又有點奇怪...
推
01/26 22:06,
3年前
, 9F
01/26 22:06, 9F
→
01/26 22:06,
3年前
, 10F
01/26 22:06, 10F
→
01/26 22:07,
3年前
, 11F
01/26 22:07, 11F
這樣聽起來就是
for me: teams/{team_id}/users/profile
for someone: teams/{team_id}/users/{user_id}/profile
這樣嗎
→
01/26 22:11,
3年前
, 12F
01/26 22:11, 12F
→
01/26 22:11,
3年前
, 13F
01/26 22:11, 13F
可以幫忙導正一下嗎 QQ
推
01/26 22:18,
3年前
, 14F
01/26 22:18, 14F
推
01/26 22:19,
3年前
, 15F
01/26 22:19, 15F
→
01/26 22:20,
3年前
, 16F
01/26 22:20, 16F
→
01/26 22:20,
3年前
, 17F
01/26 22:20, 17F
You got the point
推
01/26 22:41,
3年前
, 18F
01/26 22:41, 18F
→
01/26 22:41,
3年前
, 19F
01/26 22:41, 19F
→
01/26 22:41,
3年前
, 20F
01/26 22:41, 20F
→
01/26 22:41,
3年前
, 21F
01/26 22:41, 21F
→
01/26 22:42,
3年前
, 22F
01/26 22:42, 22F
→
01/26 23:04,
3年前
, 23F
01/26 23:04, 23F
好的,謝謝
推
01/26 23:29,
3年前
, 24F
01/26 23:29, 24F
因為假設是查自己了,那 {user_id} 不需要存在,從 jwt token 就可以拿到 id 了
所以網路上的範例多半 api/v1/events 是指 jwt token user 的 personal event
那反過來講,我 api/v1/events 萬一是要給全部的人看不鎖登入的話該怎麼辦
我現在就是怎麼從網址就可以清楚表示這個 resource 是拿登入者自己還是全部的數據而困擾
※ 編輯: chan15 (122.116.234.173 臺灣), 01/27/2021 00:47:08
推
01/27 01:09,
3年前
, 25F
01/27 01:09, 25F
→
01/27 03:07,
3年前
, 26F
01/27 03:07, 26F
→
01/27 04:49,
3年前
, 27F
01/27 04:49, 27F
→
01/27 04:49,
3年前
, 28F
01/27 04:49, 28F
→
01/27 04:49,
3年前
, 29F
01/27 04:49, 29F
→
01/27 04:49,
3年前
, 30F
01/27 04:49, 30F
→
01/27 04:52,
3年前
, 31F
01/27 04:52, 31F
→
01/27 04:52,
3年前
, 32F
01/27 04:52, 32F
推
01/27 04:53,
3年前
, 33F
01/27 04:53, 33F
推
01/27 05:36,
3年前
, 34F
01/27 05:36, 34F
→
01/27 05:36,
3年前
, 35F
01/27 05:36, 35F
→
01/27 09:50,
3年前
, 36F
01/27 09:50, 36F
→
01/27 09:50,
3年前
, 37F
01/27 09:50, 37F
推
01/27 12:01,
3年前
, 38F
01/27 12:01, 38F
→
01/27 15:23,
3年前
, 39F
01/27 15:23, 39F
→
01/27 15:23,
3年前
, 40F
01/27 15:23, 40F
→
01/27 16:09,
3年前
, 41F
01/27 16:09, 41F
→
01/27 16:10,
3年前
, 42F
01/27 16:10, 42F
推
01/27 21:43,
3年前
, 43F
01/27 21:43, 43F
→
01/27 21:43,
3年前
, 44F
01/27 21:43, 44F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):