Realización de llamadas de API en Order Hub
Se recomienda utilizar los diferentes servicios auxiliares que proporcionan las bibliotecas de Order Hub para comunicarse con el entorno OMS, los arrendatarios IV y SIP. Al utilizar estos ayudantes, no es necesario que se ocupe de la autenticación y otros aspectos de comunicación que son necesarios si ha utilizado la interfaz básica de HttpClient Angular. Order Hub está diseñado para llamar a las API REST utilizando la notación JSON.
Invocación de las API OMS
BucCommOmsRestAPIService utilizando la siguiente función:invokeOMSRESTApi(api, data, params): Observable<any>- api
- El nombre de la API. Por ejemplo,
getOrderList,getItemList, etc. - datos
- El JSON de entrada esperado por la API.
- params
- Otros parámetros soportados por Order Hub, como por ejemplo los parámetros de almacenamiento en memoria caché.
BucCommOmsRestAPIService.invokeOMSRESTApi('getItemPrice', payLoad, null);Como referencia, la siguiente guía de aprendizaje invoca las API OMS: Guía de aprendizaje: Personalización de la acción Planificar orden.
Invocación de servicios OMS
BucCommOmsRestAPIService utilizando otra función:invokeOMSCustomService(api, data, params, customHeaders?: any): Observable<any>- api
- El nombre de la API. Por ejemplo,
getOrderList,getItemList, etc. - datos
- El JSON de entrada esperado por la API.
- params
- Otros parámetros soportados por Order Hub, como por ejemplo los parámetros de almacenamiento en memoria caché.
- customHeaders
- Cualquier cabecera personalizada adicional que sea necesario añadir a la cabecera de solicitud.
BucCommOmsRestAPIService.invokeOMSCustomService('RequestForReassignOrderRelease', orderReleaseInput, null, customHeaders);Invocación de las API IV y SIP
Para realizar llamadas REST a IV y SIP, puede comprobar si Order Hub ya tiene servicios auxiliares para el servicio concreto. Si no es así, puede crear un nuevo servicio Angular con una función simple para llamar a la API.
public getNodeTypes(): Observable<any> {
const resourceDomain = 'promising';
const domain = BucCommBEHttpWrapperService.getPathPrefix(resourceDomain);
const options = BucCommBEHttpWrapperService.getRequestOptions(resourceDomain);
const tenantId = BucSvcAngularStaticAppInfoFacadeUtil.getPromisingTenantId();
let path = '/{tenantId}/v1/nodeTypes';
const queryParameters: any = {}
path = path.replace('{tenantId}', tenantId);
if (tenantId === undefined) {
return throwError(new Error('Missing required parameter: tenantId'));
}
const url = domain + path;
const p: HttpParams = RestServicesHelper.getSupplyDemandParameters(queryParameters);
const obsToReturn$ = this.http.get(url, resourceDomain, p, options);
return obsToReturn$;
}- Las bibliotecas de Order Hub pueden configurar las cabeceras de dominio y autenticación adecuadas para realizar solicitudes http a los respectivos microservicios SIP utilizando el dominio de recursos.Los valores de dominio de recursos aceptados son:
- CAS
- Obtiene las cabeceras de autenticación de arrendatario para comunicarse con los microservicios de transportista SIP.
- catálogo
- Obtiene las cabeceras de autenticación de arrendatario para comunicarse con los microservicios del catálogo SIP.
- configuración
- Obtiene las cabeceras de autenticación de arrendatario para comunicarse con los microservicios de configuración SIP.
- inventario
- Obtiene las cabeceras de autenticación de arrendatario para comunicarse con los microservicios IV.
- inventario_buc
- Obtiene las cabeceras de autenticación de arrendatario para comunicarse con los microservicios IV que están pensados para pantallas Order Hub específicas.
- compromiso
- Obtiene las cabeceras de autenticación de arrendatario para comunicarse con los microservicios de compromiso SIP.
- Establezca la vía de acceso para que sea la vía de acceso de API REST relativa del microservicio que está intentando invocar.
El resto de la función del ejemplo se puede dejar tal cual.
Como referencia, la siguiente guía de aprendizaje invoca las API IV y SIP: Guía de aprendizaje: Personalización de la página de resultados de búsqueda de inventario.