私はURIデザインのベストプラクティスのための様々なリソースを研究しました。ほとんどすべての著者やブロガーは、RESTFul API URIは、このように見える必要があると言っています。REST API URIを使用してリソースIDを渡す理由は何ですか?
/* List all users in account 2 where user id is 1 */
`/users/1/accounts/2/users` [GET]
上記のapi呼び出し元は、リクエストごとに2つ以上のIDを渡す必要があります。
私のシナリオはかなり異なっています。
APIサーバーの前にはリソースマネージャー(RM)があり、すべてのリクエストが上記のサンプルAPIにアクセスするために有効なtoken
で認証のためにRMを通過する必要があります。 注:[トークンはヘッダーを介して送信]
リクエストが承認されると、RMはインターセプタを介してAPIサーバーにユーザー情報(user_id、account_idなど)を提供します。
質問私のAPIサーバーは既にuser_id
と彼のaccount_id
を認識していますが、API URIでこれらの情報を取得する必要があります。
私は、次のようなデザインを試してみました:
1. /users/accounts/users
2. /accounts/users
3. /users
このシナリオに最適な設計とは何ですか?私は2週間を過ごしましたが、これはエンタープライズAPIの設計であるため決定できませんでした。一度設計されたものは変わらないでしょう。
フェデレーションを後で追加したり、マルチアカウント認証を追加したり、グローバル管理APIを追加したりする場合は、すべてをURIに入れます。また、キャッシングの目的で使用します。通話の内容がすべての視聴者と異なることを明確にする。 – jessehouwing