Friday, September 29, 2023
How to pass additional/custom query string parameter to Sitecore layout service request from NEXT JS?
Are you working with Sitecore Next JSS and coming across any requirement to pass additional or custom query string parameters to Sitecore layout service requests from Next JS?
- If yes, follow the below steps which will guide you to extend the RestLayoutService from the Next JSS layer.
The custom query string parameters can be passed by tweaking the file-\src\lib\parameterized-rest-layout-service.ts.
Step 1: Update file-\nextjs\src\lib\parameterized-rest-layout-service.ts
import {
RestLayoutService,
RestLayoutServiceConfig,
} from "@sitecore-jss/sitecore-jss-nextjs";
interface FetchParams {
[param: string]: string | number | boolean;
sc_apikey: string;
sc_site: string;
sc_lang: string;
tracking: boolean;
}
export class ParameterizedRestLayoutService extends RestLayoutService {
constructor(
private config: RestLayoutServiceConfig,
private userId?: any,
private isRestricted?: any,
private prvURL?: any
) {
super(config);
}
protected getFetchParams = (language?: string): FetchParams => {
const fetchParams: FetchParams = {
sc_apikey: this.config.apiKey,
sc_site: this.config.siteName,
sc_lang: language || "",
tracking: this.config.tracking ?? true,
};
if (this.userId) {
fetchParams.userid = this.userId;
}
if (this.prvURL !== "") {
fetchParams.isRestricted = true;
fetchParams.prvURL = this.prvURL;
}
return fetchParams;
};
}Step: 2. Read the query string parameters from LayoutService context
In order to read the query string parameters from the Sitecore end, we need to extend the layout service context. To know more about extending the layout service, you can refer to the blog mentioned below:
https://sitecoreknowledgehub.blogspot.com/2023/09/how-to-extend-sitecore-jss-layout.html
How to Create a Public Link Using the Sitecore Content Hub REST API
Creating a public link using the Sitecore Content Hub REST API is a straightforward process that enables you to share content externally whi...
-
Creating a public link using the Sitecore Content Hub REST API is a straightforward process that enables you to share content externally whi...
-
Are you working with Sitecore Next JSS and coming across any requirement to pass additional or custom query string parameters to Sitecore la...
-
Restrict uploading Video and Audio files in Media Library based on Mime Type/Restrict uploading zip file which contains Video and Audio fi...