Soft_Job 板


LINE

※ 引述《chan15 (ChaN)》之銘言: : 各位好,我正在設計公司的 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 來用,謝謝 在 teams A 的 users A 和 teams B 的 users A 會是不同的 user 嗎? 如果不是的話要把 teams 前綴拿掉。 以目前設計到一半的 PTT API 為例, boards A 的 articles A 和 boards B 的 articles A 會是不同文章,因此要分開。 然後 me 的問題,我不建議使用 users/me 這樣的做法,假如有人的 ID 是 me 會很衰 相較之下我會建議你直接用 /me/forget-password 也就是說 /me 來代表 /users/{{current_user_id}} 這樣 然後推文有提到 302 我認為這也是好的作法,或是 301 也行,不過在進行Redirect的 時候務必要確定 Proxy Cache 會同時檢查 Authorization ,否則有可能會看到別人的 資料。 順帶一提,我覺得me最好用的時機是讓前端檢查登入狀態用,因為4字頭就代表沒登入 假如 200 就可以接著畫使用者資料了。 然後我沒有考慮 JWT, 因為 JWT 裡的資訊本來就比較額外。 -- 人紅是非多,活益比非多。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.47.164 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1611796477.A.192.html
1F:推 yukang: 我覺得怕me 重復可能只有 ptt 才會發生 01/28 09:42
2F:→ yukang: 基本的帳號長度都超過2碼 01/28 09:42
3F:→ bill0205: id如果是int其實就還好 如果是uuid就有可能了XD 01/28 09:48
4F:推 CMJ0121: p果是 RESTFul API 帳號相關還是不建議用可以列舉的 int 01/28 13:53
5F:→ csieflyman: 我習慣用 /users/{userId}/profile 及 /users/myProfi 01/28 15:36
6F:→ csieflyman: le 因為 userId 會自動填入變數 型態可能是 long 或 u 01/28 15:36
7F:→ csieflyman: uid 所以不能直接寫死 me 01/28 15:36







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP