Introduction to brX GraphQL Service
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.
BrX Content provides an optional GraphQL API set of commerce features for developers who want to take advantage of GraphQL technologies.
At 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's Pages endpoint in brX Content 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 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.
- Configure brX GraphQL Service
- Access Management in brX GraphQL Service
- Connect Local Reference SPA with brX GraphQL Service
- GraphQL Schema of brX GraphQL Service
- GraphQL Examples
- Extend the brX GraphQL Service using Apollo Federation
- FAQ about brX GraphQL Service