RESTCall
Modulo que realiza una llamada a un servicio REST
MODULO | NOMBRE TÉCNICO | PARAMETROS | DESCRIPCIÓN |
restcall | localejbs/com.realtech.adapter.orch.modules.core.ext.RestBean | restcall.bean | Path al bean del modulo. Ej: “localejbs/com.realtech.adapter.orch.modules.core.ext.RestBean” |
restcall.url | La url del servicio rest al que llamar. Puede ser dinamica jugando con los @ de los parametros. El: http://host:8080/alfresco/s/choc/invoice/getInvoiceInfo?noderef=@XPATH(core){/MT_GetStatusByIDRequest/ID}&alf_ticket=@XPATH(restLogin){/data/ticket} | ||
restcall.verboHttp | Indica el verbo HTTP a usar. Implementados POST y GET | ||
restcall.URLConnection | Hacemos tratamento especial para Cellnext con URLConnection en vez de liberías de Apache. Se hace SIEMPRE GET y el resto de parametros, salvo la url, isCMSSignedData y convertToXML se ignoran. Se hizo así ya que la conexión con las librerías de apache se truncaba sin el final del fichero. Ejemplo: Truncated chunk ( expected size: 7754; actual size: 1183) | ||
restcall.convert_to_json | Indica si convertir el XML a JSON antes de enviar | ||
restcall.convert_to_xml | Indica si convertir el JSON a XML una vez recibida la respuesta | ||
restcall.convert_to_xml_nodoPrincipal | Indica el nombre del nodo principal del XML obtenido del JSON. Si no se indica no se agrega nodo principal y se obtendrá lo que venga en el JSON. Permite agregar nombre sin namespace: restcall.convert_to_xml_nodoPrincipal=MT_SendInvoice y con namespace: restcall.convert_to_xml_nodoPrincipal=ns1:MT_SendInvoice xmlns:ns1="urn:fattura:emission:alfresco:sendInvoices" | ||
restcall.ok_http_codes | Indica los codigos http que son aceptados como proceso realizado correctamente. Por defecto 200. Se define un valor o n:
| ||
restcall.multipartPost | Indica si se debe hacer un multipart POST (X) para enviar ficheros. Requiere que el metodo sea POST y no aplica el parametro convert_to_json. De momento los multiparts son de tipo XML. Ejemplo: Content-Disposition: form-data; name="xmlInvoiceFile"; filename="IT07516921009_00010.XML" Si se requiere de otro tipo falta implementar. | ||
restcall.multipart | Permite definir los multiparts a insertar en la petición POST. Debe usarse así para cada fichero a subir: restInvoice.multipart_name[0]=xmlInvoiceFile Donde:
Es decir la petición quedará así: Content-Disposition: form-data; name="xmlInvoiceFile"; filename="IT07516921009_00010.XML". En este caso IT07516921009_00010.XML se ha obtenido de @XPATH(core){/MT_SendInvoice/Invoice/NomeFile} | ||
restcall.isCMSSignedData | Indica se se va a recibir un fichero CMSSignedData para procesarlo y obtener el objeto firmado. El WS de Alfreso puede devolver: | ||
restcall.proxyHost | EL host del proxy que usar para la conexión HTTP. Si viene vacio no se usa proxy | ||
restcall.proxyPort | EL puerto del proxy que usar para la conexión HTTP | ||
restcall.proxyAuthFlag | Indica si se debe usar autenticación para el proxy, en cuyo caso, hay que completar los dos siguientes parámetros. Posibles valores: (‘X’ | ‘-‘). | ||
restcall.proxyUser | Usuario del proxy. | ||
restcall.proxyPassword | Password del anterior usuario. | ||
restcall.user.authentication | Tipo de autenticación. Valores posibles: password (valor por defecto) / certificate / none | ||
restcall.user | Si user.authentication = password. El usuario de autenticación HTTP del Web Service | ||
restcall.password | Si user.authentication = password, La password de autenticación HTTP del Web Service | ||
restcall.user.certificate.gestor | Si user.authentication = certificate, Tipo de gestión del certificado Valores posibles: keystorage (Key Storage estándar de SAP PI) / certificateGestor (B+ Secure Keystore). | ||
restcall.certificate.view | Si user.certificate.gestor = keystorage, View del Key Storage estándar de SAP PI para la autenticación con certificado | ||
restcall.certificate.alias | Si user.certificate.gestor = keystorage, Alias de la anterior vista para la autenticación con certificado. (PRIVATE KEY) | ||
restcall.certificate.public.alias | Si user.certificate.gestor = keystorage, key storage alias del certificado público del certificado de autenticación. Debe estar en la misma vista que la clave privada. (CERTIFICATE) | ||
restcall.certificate.gestor.alias | Si user.certificate.gestor = certificateGestor, Alias del cetificado en el B+ Secure Keystore. (CERTIFICATE) | ||
restcall.certificate.gestor.jndi | Si user.certificate.gestor = certificateGestor, JNDI del B+ Secure Keystore. Valor: ejb:/appName=realtech.com/efact~j2ee~ear~gestcrt, jarName=realtech.com~efact~j2ee~ejb~gestcrt.jar, beanName=GestorCertEJBBean, interfaceName=com.realtech.efact.j2ee.ejb.gestor.cert.ejb.GestorCertEJBBeanLocal | ||
restcall.isHTTPS | Indica si es conexión HTTPS o no (‘X’ | ‘-‘), cualquier otra cosa. En caso de HTTPS se validará la cadena de certificación contra el trustedCAs del KeyStorage del SAP AS Java. | ||
restcall.httpsPort | El puerto https a usar en las conexiones https | ||
restcall.sslProtocol | El protocolo para las conexiones SSL TLS: "SSLv3","TLSv1", "TLSv1.1", "TLSv1.2"}, El soporte de los protocolos varía en función de la JDK del servidor. http://www.ateam-oracle.com/tls-and-java/ | ||
restcall.sslCipherProtocol | Para definir los protocolos de cifrado SSL. Si se define más de uno separa por !!. Ej: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256!!TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Si no se define coge los definidos en el servidor. | ||
restcall.trust.all.servers | Indica si quieres que la conexión https se establezca sin validar el certificado (X). Modo pruebas. NO SE DEBE USAR PARA ESCENARIOS REALES NI EN PRODUCTIVO. Si no se indica se validará la cadena de certificación contra el trustedCAs del KeyStorage del SAP AS Java. | ||
restcall.xpath.http.error.as.functional | Indica si se debe tratar una respuesta HTTP correcta (200OK) como error funcional (OrchestratorModuleFunctionalException), si se encuentra en la respuesta el valor de la expresión xpath indicada. Para especificar esta propiedad es necesario que la respuesta sea XML o que se haya especificado el parametro convert_to_xml. | ||
restcall.xpath.http.error.as.technical | Indica si se debe tratar una respuesta HTTP correcta (200OK) como error técnico (OrchestratorModuleLockableException), si se encuentra en la respuesta el valor de la expresión xpath indicada. Para especificar esta propiedad es necesario que la respuesta sea XML o que se haya especificado el parametro convert_to_xml. | ||
restcall.treat.http.error.as.functional | Indica si se debe tratar un error HTTP como una excepción funcional o no (‘X’ | ‘-‘),. Por defecto error lockable. Si se trata como funcional, es necesario utilizar el parámetro "ex_functional_mod" para indicar los módulos a ejecutar en ese caso. | ||
restcall.header | Permite añadir Headers HTTP a la petición. Se debe usar asi: restcall.header_name[0]=Connection | ||
restcall.timeOut | Establece el timeout de la conexión en s. default value 300 sg like SAP |
Ejemplos de utilización:
POST
#Modulo restLogin
restLogin.bean=localejbs/com.realtech.adapter.orch.modules.core.ext.RestBean
restLogin.verboHttp=POST
restLogin.convert_to_json=X
restLogin.convert_to_xml=X
restLogin.url=http://34.241.153.194:8080/alfresco/service/api/login
restLogin.user.authentication=none
#restLogin.use_content_of=xmltransformLogin
GET
#Modulo restGetStatus
restGetStatus.bean=localejbs/com.realtech.adapter.orch.modules.core.ext.RestBean
restGetStatus.verboHttp=GET
restGetStatus.convert_to_xml=X
restGetStatus.convert_to_xml_nodoPrincipal=ns0:MT_GetStatusByIDResponse xmlns:ns0="urn:fattura:emission:alfresco:getStatus"
restGetStatus.url=http://34.241.153.194:8080/alfresco/s/choc/invoice/getInvoiceInfo?noderef=@XPATH(core){/MT_GetStatusByIDRequest/ID}&alf_ticket=@XPATH(restLogin){/data/ticket}
restGetStatus.user.authentication=none
#restGetStatus.use_content_of=core
Avvale 2024