1

私の質問はこの記事に基づいています: should-restful-apis-include-relationships

次のリソースがあるとしましょう: ユーザーとロール

単一のユーザーはapi/users/{userId}で取得でき、単一のロールはapi/roles/{roleId}で取得できます

1 人のユーザーの応答データは次のようになります。

Id: 1
Firstname: Alice
Lastname: Henderson
Email: alice@henderson.com
Roles: api/users/1/roles

このユーザーの役割を取得するには、アプリケーションは返された URL api/users/1/rolesを呼び出す必要があります

1 人のユーザーを表示する場合、このアプローチは問題ないようです。しかし、対応するロールを持つすべてのユーザーを表示したい場合、アプリケーションは api/users への 1 回の呼び出しと api/users/x/roles への x 回の呼び出しを必要ます

複数のユーザーを取得し、それらの役割の関係を解決するために、この設計をどのように改善できますか?

4

1 に答える 1

1

必要な詳細レベルを指定する 1 つ以上のクエリ パラメータを受け入れるように API を設計できます。例えば:

GET /api/users/1?expand=role(self, id, name)

{
    "id": 1
    "firstName": "Alice"
    "lastName": "Henderson"
    "email": "alice@henderson.com"
    "roles": [
        {
            "self": "api/roles/4"
            "id": 4
            "name": "Administrator"
        },
        {
            "self": "api/roles/7"
            "id": 7
            "name": "Uberuser"
        }
    ]
}
于 2013-08-24T18:25:02.330 に答える