作者LeonH (Leon)
看板Web_Design
標題Re: [問題] RESTful API 非 resource 的設計問題
時間Sun Sep 3 14:00:11 2023
※ 引述《chan15 (ChaN)》之銘言:
場景一我看不懂,跳過。
: 場景二:複合式動作的命名
: 假設要訂閱某個文章,他是拿 header 裡的 token 找出 user,然後帶入文章 id 後寫入
: pivot table 那該怎麼命名。
: 2.1
: ArticleController.php
: function subscribe()
: POST www.example.com/articles/{article_id}/subscription
: 還是應該更明確
: 2.2
: ArticleController.php
: function userSubscribe()
: POST www.example.com/articles/{article_id}/user-subscription
場景二我會用 POST /articles/{article_id}/subscribe
^^^^^^^^^ 動詞,因為訂閱是 action
: 場景三:特殊註況
: 以使用者密碼為例,密碼可能有重設密碼、忘記密碼
: 3.1
: UserPasswordController.php
: function reset()
: users/password/reset
: function forgot()
: users/password/forgot
: 3.2
: UserController.php
: function resetPassword()
: users/password-reset
: function forgotPassword()
: users/password-forgot
: 想請教各位會怎麼選擇。
場景三我會用 singleton path,像這樣:
POST /me/reset-password
POST /me/forget-password
同樣,reset、forget 都是動詞
至於那 /users/ 留給帳號管理員用,例如:
POST /users/{user_id}/update-password
最後私心推一下這本《Web API 設計原則》
https://www.gotop.com.tw/books/BookDetails.aspx?Types=v&bn=ACL065500
裡面第七章有專門談到 REST API 設計
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.22.93 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1693720813.A.17B.html
1F:推 chan15: 謝謝,下訂去 09/04 10:34