我想提供重置用戶密碼的功能。這個調用顯然不需要認證。 首先,我認爲是這樣的:未經身份驗證的請求的REST式URL設計
DELETE /users/{id}/password
:產生被通過電子郵件
POST /users/{id}/password
發送給用戶重置令牌:需要新密碼,並在體內的有效重置令牌
但問題是,應用程序或網站無法提供給我用戶的ID,因爲它可以要求用戶輸入他的電子郵件地址。
我們的API還有一些其他(未經身份驗證的)調用,其中ID不存在且用戶只能通過其電子郵件進行標識。
我們討論我們的團隊通過以下方法解決:
- 在與用戶的URL更換ID電子郵件
- 從URL中切出的ID和查詢參數
如果我不得不在這兩者之間做出選擇,我會選擇第一個,因爲我認爲提供查詢參數必不可少的東西並不是RESTful,因爲它們總是代表可選的東西,比如過濾資源。 有沒有更好的方法來設計這些URL或用用戶電子郵件取代ID與REST限制有關嗎?