Создание вызова API для нового API в Spartacus
Мы представили несколько новых API от SAP Commerce, и нам необходимо получить / опубликовать данные в некоторых компонентах или службах.
Существуют ли какие-либо предопределенные механизмы для использования новых интеграций API, или мы должны просто использовать HttpClient из Angular?
Мы ожидаем, что должен быть способ получения данных из новых API, как у OOTB API, таких как StoreFinderService, который помогает нам получать данные для магазина, а также есть некоторые другие службы.
Spartacus использует NgRx для обработки всех API, а затем эти службы предоставляют данные из магазинов. Точно так же должен быть способ получить данные для новых API, созданных в соответствии с бизнес-требованиями.
1 ответ
Spartacus использует Angular HttpClient под капотом, это рекомендуемый сервис для взаимодействия с http. Однако использование HttpClient непосредственно из компонента обычно считается плохой практикой. Вам лучше разделить проблемы и делегировать взаимодействие с серверной частью службе.
Spartacus предлагает обширную архитектуру для обработки серверных API-интерфейсов, вы можете узнать больше об этом на https://sap.github.io/spartacus-docs/connecting-to-other-systems. Вы можете следовать этой архитектуре, но для проекта она слишком сложна. Архитектура действительно нацелена на точки расширения, что справедливо для продукта, но чаще всего не для проекта.
https://github.com/SAP/spartacus-bootcamp/tree/master/src/app/features/state показывает вам несколько примеров введения настраиваемого состояния в состояние Spartacus.
Для проектов, вводящих новые функции, я бы либо создал и поддерживал состояние в службе, либо ввел настраиваемое состояние в ngrx. В дальнейшем вы можете оценить https://github.com/SAP/spartacus-bootcamp/tree/master/src/app/features/state, где показано, как добавить новое состояние в Spartacus, или почитать ресурсы ngrx.