Механизм для охвата API - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть разные пользователи, которые могут войти в пользовательский интерфейс и должны видеть разные представления одних и тех же ресурсов.Так, например, семья делит покупки в приложении.Когда родитель входит в систему, он может видеть все в корзине.Когда ребенок регистрируется, он не может видеть определенные товары в своей корзине, а товары, которые они могут видеть, они не могут видеть определенные атрибуты (например, цену).

Итак, с точки зрения ресурсов, если мы хотим, чтобы родитель и ребенокчтобы иметь два разных вида корзины, один из способов сделать это будет:

/parent/shoppingcart

и

/child/shoppingcart

Другой способ будет:

/parent.shoppingcart

и

/child.shoppingcart

Какова лучшая практика с точки зрения API / REST?

Примечание: я не могу сделать,

/shoppingcartsummary

и / shoppingcart

потому что существует даже больше просмотров, чем родитель и потомок.

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Лучшей практикой может быть / shoppingcart / parent и / shoppingcart / child.Я уверен, что если вы можете сделать «/ parent / shoppingcart», вы можете сделать «/ shoppingcart / parent».

Корзина покупок будет общей / общей частью представления (и в контроллере, общей функциональностью, такой как получение списка продуктов при подготовке к отображению их тем или иным способом или нет).На основе уровня авторизации дочернее представление «родитель» или «ребенок» расширяет корзину покупок и уточняет точное представление.

Конечно, только родитель будет иметь доступ к / shoppingcart / parent.Конечно, у родителя также может быть ссылка «Просмотреть как дочерний» для просмотра /shoppingcart/child.

. Особо важно не полагаться на клиента / браузер, чтобы напрямую указать, что это такое, например, отправлятьContent-Type для указания родителя или потомка.

0 голосов
/ 18 декабря 2018

У вас есть один ресурс, /shopping-cart.У вас есть несколько представлений этого ресурса - одно для родителей, другое для детей и т. Д. Вы можете сохранить одну конечную точку (для ресурса) и использовать заголовок Accept с пользовательскими типами содержимого, такими как vnd.mycompany.child, чтобы указать желаемое представление этого ресурса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...