Подход 1, Хранение всего в JWT:
каждый раз, когда пользователь обновляет свою корзину или список желаний, вы должны создать новый JWT и вернуть его пользователю. Вы бы не хотели создавать новый токен при каждом действии (добавлении / обновлении / удалении), выполняемом пользователем. Хотя вы можете закодировать данные в JWT для начальной загрузки данных.
Подход 2, вернуть все одним запросом
Этот подход подходит для меньшего количества данных и данных, которые связаны друг с другом . Например, в некоторых случаях вы можете захотеть показать # количество товаров в корзине, количество элементов списка желаний, общее количество заказов, которые они сделали на одной странице. В этом случае вы можете создать что-то вроде /dashboard
, которое возвращает основную c информацию о пользователе.
GET: /dashobard
{
wishlists: 5,
totalOrders: 100,
cartItems: 10,
}
Подход 3
Я бы использовал go с этим подходом. По мере того, как ваше приложение растет и его использует большое количество людей, у них будет несколько списков желаний и несколько прошлых заказов, и ваше приложение может иметь отдельные страницы для отображения этой информации. В этом случае рекомендуется иметь отдельный маршрут для каждого ресурса.
GET: /users/1/wishlists/ --> get all wishlist of user 1
DELETE/UPDATE: /users/1/wishlists/10/ --> update wishlist with id 10 of user 1
GET: /users/1/orders --> get all orders of user 1
Вы можете комбинировать все подходы и использовать соответственно