Fetch layout data with the JSS GraphQL Layout Service
Version: 22.x
You can fetch layout data from Sitecore using GraphQL and the JSS GraphQLLayoutService
class.
To fetch layout data with the JSS GraphQL Layout Service:
-
In a
layout-service.ts
file, create and configure an instance of theGraphQLLayoutService
class using :RequestResponseimport {GraphQLLayoutService} from '@sitecore-jss/sitecore-jss'; import config from 'temp/config'; import clientFactory from 'lib/graphql-client-factory'; export const layoutService = new GraphQLLayoutService({ clientFactory, siteName: config.sitecoreSiteName, /* GraphQL endpoint may reach its rate limit with the amount of Layout and Dictionary requests it receives and throw a rate limit error. GraphQL Dictionary and Layout Services can handle rate limit errors from the server and attempt a retry on requests. For this, specify the number of retries the GraphQL client will attempt. It will only try the request once by default. */ retries: (process.env.GRAPH_QL_SERVICE_RETRIES && parseInt(process.env.GRAPH_QL_SERVICE_RETRIES, 10)) || 0, })
-
In the file where you want to fetch the data, import and use your new layout service instance:
RequestResponseimport { layoutService } from './layout-service'; const language = 'en'; layoutService.fetchLayoutData(language).then(data => { // do something with the data });
Tip
You can pass a formatLayoutQuery
option to your GraphQLLayoutService instance to override the default query. See the GraphQLLayoutServiceConfig
type for details.