Я предоставляю такой API REST для получения информации о базовом пользователе и информации о пространстве пользователя.Является ли хорошей практикой предоставление API агрегирования в Rest или в обычном WebAPI Design?
/v1/пользователей/{user_id}/профиль, который будет возвращать такой JSON:
`` `JSON {
"ID": 123, "Название":» Foo», "секс": 0, "электронная почта": "[email protected]", } ` ``
/v1/пользователей/{user_id}/пространство, которые также возвращают JSON:
`` `{JSON "sum_space": 100, "used_space": 20, }
Теперь, если клиент (например, веб-страница, третье приложение) имеют представление, которое должно показывать часть информации о пользователе (например, «имя», «секс») и часть информации о пространстве пользователя (например, «sum_space») в одно и то же время. Должен ли я предоставить новый API агрегирования, такой как /v1/users/{user_id}
?
И если я предоставляю такой API агрегирования, должен ли он возвращать все атрибуты пользователя и пространства? если бы я это сделал, возвращаемое значение будет включать некоторые неиспользованные значения, что увеличит пропускную способность сети. Но если этот API просто вернет то, что нужно клиенту, что мне делать, если придет новое требование клиента (например, просто введите имя пользователя и пользовательское_используемое пространство)?
Если я не предоставляю API агрегирования, все клиент должен называть N раз для получения N видов ресурсов. если есть требование для поиска фильтра (например, для получения списка пользователей, суммарное пространство> 100), клиент может делать это только последовательно.
Я очень смущаюсь по поводу того, что любое руководство следовать?