2013-08-24 3 views
1

Мои вопросы основаны на этой статье: should-restful-apis-include-relationshipsRESTful дизайн: решения отношения

Скажем, у меня есть следующие ресурсы: пользователи и роли

Один пользователь может быть получен с помощью API/пользователей/{USERID } и одной роли на апи/роли/{} Идентификатор роли

данные отклика одного пользователя выглядит следующим образом:

Id: 1 
Firstname: Alice 
Lastname: Henderson 
Email: [email protected] 
Roles: api/users/1/roles 

Чтобы получить роли этого пользователя приложение должно вызвать возвращаемые URL API/пользователей/1/ролей

Для отображения 1 пользователя этот подход, кажется, хорошо. Но если я хочу, чтобы отобразить все пользователь с соответствующими ролями приложения должны 1 вызов к API/пользователям и х вызовы на API/пользователи/х/роли

Как эта конструкция может быть улучшена для получения нескольких пользователей и разрешение их ролевых отношений?

ответ

1

Вы можете проектировать свой API для принятия одного или нескольких параметров запроса, которые задают желаемый уровень детализации. Например:

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

{ 
    "id": 1 
    "firstName": "Alice" 
    "lastName": "Henderson" 
    "email": "[email protected]" 
    "roles": [ 
     { 
      "self": "api/roles/4" 
      "id": 4 
      "name": "Administrator" 
     }, 
     { 
      "self": "api/roles/7" 
      "id": 7 
      "name": "Uberuser" 
     } 
    ] 
} 
Смежные вопросы