Introduction to brX GraphQL Service
Introduction
GraphQL is getting more attention in modern application development as it tries to fulfill various data requirements with complex state management for distinct front-end clients. GraphQL provides benefits through its declarative model which helps developers create a consistent, predictable API across different clients and platforms.
Since v14.3, the Bloomreach Commerce Accelerator provides an optional GraphQL API set of commerce features for developers who want to take advantage of GraphQL technologies. This GraphQL API set is functionally equivalent to the Commerce Connector SDK and Commerce Connector Modules, where the former is based on GraphQL technologies for any GraphQL clients and the latter is based on Java technologies for Java-based applications only.
Architecture Overview
In a very high level, a simplified architectural overview can be depicted as follows:
An SPA (or any type of GraphQL client applications) may retrieve or update data in the Commerce Backend Platforms through the brX GraphQL Service. While it retrieves the page model from the Delivery API in brXM to render pages and components, the SPA may read or update commerce related data from the brX GraphQL Service in commerce related components (e.g, Product Grid, Product Detail, Cart, etc.).
The Bloomreach Commerce Accelerator also introduces new Open UI based picker plugins, which provide the same features (selecting related product or category in documents) as the old Wicket-based picker plugins. The only difference is that the new Open UI based picker plugins communicate with the new GraphQL API whereas the old Wicket-based picker plugins use the existing Java API.
The brX GraphQL Service is comprised of multiple layers of components internally based on Apollo Server technologies:
- Server and Resolvers: the Apollo Server and GraphQL resource resolvers implementation which invoke the corresponding DataSource operations
- DataSource interfaces: Various commerce related abstractions such as CategoryDataSource, ItemsDataSource, CustomerDataSource, CartDataSource, OrderDataSource, etc.
- Commerce Backend specific DataSource implementations: DataSource implementations for each Commerce Backend Platform in a separate package
For further details, see the Further Reading section.
Demo Connector Module
To help developers understand how the DataSource components are implemented for a specific Commerce Backend, a demo connector module is provided by default, working with the Open Source Commerce Software: Shopizer.
Find further details in Shopizer Connector Configuration page.
Further Reading
- Install brX GraphQL Service
- Configure brX GraphQL Service
- Commerce Connector Configuration for brX GraphQL Service
- GraphQL Schema of brX GraphQL Service
- Configure Open UI Pickers
- Dockerizing brX GraphQL Service
- Extend the brX GraphQL Service using Apollo Federation
- FAQ about brX GraphQL Service
- Download the Source of the brX GraphQL Service