SAP Spartacus OccEndpointsService getUrl方法的实现原理
生活随笔
收集整理的這篇文章主要介紹了
SAP Spartacus OccEndpointsService getUrl方法的实现原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
源代碼:
/*** Returns a fully qualified OCC Url (including baseUrl and baseSite)* @param endpoint Name of the OCC endpoint key config* @param urlParams URL parameters* @param queryParams Query parameters* @param scope*/getUrl(endpoint: string,urlParams?: object,queryParams?: object,scope?: string): string {endpoint = this.getEndpointForScope(endpoint, scope);if (urlParams) {Object.keys(urlParams).forEach((key) => {urlParams[key] = encodeURIComponent(urlParams[key]);});endpoint = DynamicTemplate.resolve(endpoint, urlParams);}if (queryParams) {let httpParamsOptions = { encoder: new HttpParamsURIEncoder() };if (endpoint.includes('?')) {let queryParamsFromEndpoint;[endpoint, queryParamsFromEndpoint] = endpoint.split('?');httpParamsOptions = {...httpParamsOptions,...{ fromString: queryParamsFromEndpoint },};}let httpParams = new HttpParams(httpParamsOptions);Object.keys(queryParams).forEach((key) => {const value = queryParams[key];if (value !== undefined) {if (value === null) {httpParams = httpParams.delete(key);} else {httpParams = httpParams.set(key, value);}}});const params = httpParams.toString();if (params.length) {endpoint += '?' + params;}}return this.getEndpoint(endpoint);}入口:
調用OccEndpointsService的getUrl方法,傳入的是productCode:
首先讀取endpoint:
OccEndpoint的配置:
專門為product list scope設置的url:
products/${productCode}?fields=code,name,summary,price(formattedValue),images(DEFAULT,galleryIndex)"
最后的請求:
一個具體的例子:
https://spartacus-dev0.eastus.cloudapp.azure.com:9002/occ/v2/electronics-spa/products/300938?fields=code,name,summary,price(formattedValue),images(DEFAULT,galleryIndex)&lang=en&curr=USD
從瀏覽器里得到的結果:
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的SAP Spartacus OccEndpointsService getUrl方法的实现原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《水浒传》中时迁是怎么死的
- 下一篇: SAP Spartacus里produc