Comments 18
Вместо псевдостатики лучше было бы использовать HARP. Клиент делает запрос вида:
?user=jin=(name;order(position;cost))
А гейтвей распаковывает его в запросы к микросервисам:
?user=jin=(name;order)
?order=12=(position;cost)
?order=34=(position;cost)
?order=56=(position;cost)
Ну или клиент сам делает пакетные запросы к разным сервисам:
?user=jin=(name;order)
?order=12=34=56=(position;cost)
Ну или так, если не хочется хранить в пользователе ссылки на заказы:
?user=jin=(name)
?order(participant=jin=;position;cost)
А чем лучше?
Стандартизацией, не надо изобретать/изучать over9000 эндпоинтов и 100500 схем запросов/ответов.
Гибкостью, схема запросов легко расширяется под разные нужды.
Выборкой связанных ресурсов за 1 запрос вместо 1+n^k.
Получением лишь нужных полей, а не всех подряд.
Ну и другими плюшками типа фильтраций, сортировок, агрегаций и тд.
А какие недостатки этого подхода?
гусеничный велосипед.
Не могу понять, каким способом можно позволить клиенту отвечать за user_id
?
если сервис C отвечает статусом
304 Not Modified
, вернуть данные из кэша;
А в чем преимущество такого подхода?
Ведь чтобы понять что ничего не поменялось, нужно дёрнуть сервис.
Ну и проще отдать ответ сервиса, чем с кешем что-то делать.
[HTTP API & REST] Организация HTTP API согласно принципам REST