amap-sw-cliente

Última modificación por Administrator el 2019/10/07 16:28

amap-sw-cliente-1.1.0 2019/10/07

Agregada funcionalidad de mtom

amap-sw-cliente-1.0.0 2019/07/29

Primera versión del componente

<dependency>
<groupId>es.gobcantabria.amap.utilidades</groupId>
<artifactId>amap-sw-cliente</artifactId>
<version>1.1.0</version>
</dependency>

N/A

Sin recursos disponibles.

Configuración

Configuración de la factoría de servicios web

Para la utilización del componente amap-sw-cliente basta con añadir el jar y sus correspondientes dependencias al classpath de la aplicación (habitualmente desde maven). 

La librería httpClient de apache es una dependencia opcional del componente (por defecto no se requiere, ya que utiliza las clases de la runtime de java para estas operaciones), este funcionamiento puede modificarse con la opción "usarHttpClient" de la factoría del servicio.

Una vez que esté disponible la librería y sus dependencias se puede crear un servicio (factoría de peticiones) del siguiente modo (petición SOAP):

AmapSWClienteFactory cliente =  AmapSWClienteFactory.createSOAP(uri,aplicacion,usuario);

o bien (petición Rest):

AmapSWClienteFactory cliente =  AmapSWClienteFactory.createREST(uri,aplicacion,usuario);

Este AmapSWClienteFactory  puede verse como una representación del servicio web completo ya que es objeto que puede crear (es una factoria a su vez) clientes que pueden hacer a su vez llamadas a los métodos del web service.

Para la creación del servicio es necesario indicar:

  • URI: URI del servicio al que se desea conectar.
  • aplicación: aplicación llamante, se traducirá en una cabecera "amap-sw-cliente-aplicacion" en la peticiones http realizadas (para auditoría de las peticiones).
  • usuario: usuario de la aplicación que genera la petición, se traducirá en una cabecera "amap-sw-cliente-usuario" en la peticiones http realizadas (para auditoría de las peticiones).

Los parámetros opcionales de creación del servicio se utilizarán a través de los métodos de la factoria (habitualmente setters) y son los siguientes:

  • TipoPeticionHttp: tipo de petición http a realizar (GET, POST, PUT, DELETE), para las peticiones SOAP siempre será POST.
  • AutenticationBasica: indica las credenciales indicadas (usuario y contraseña) para crear la cabecera de autenticación básica de http utilizada en las peticiones.
  • AutenticationWSS: indica que se ha de firmar la petición enviada al servidor con el certificado indicado (Solamente aplicable a peticiones SOAP).
  • timeout: tiempo de espera máximo de intercambio de paquetes en la conexión (en milisegundos), si pasa más tiempo que el timeout y no se ha recibido ningún paquete se retornará una excepción. por defecto esta propiedad estará establecida a 60 segundos.
  • headerRequest: cabecera para todas las peticiones realizadas con el cliente, al contrario del resto de los otros parámetros que se establecen con un setter, esta opción se establecerá con el método "addHeaderDefault", ya que se pueden añadir una, varias o ninguna cabecera por defecto para las peticiones del servicio.
  • usarHttpClient: indica si se desea utilizar la librería httpClient o no como librería para hacer conexiones http, por defecto esta propiedad está a false.
  • usarMtom: indica si se desea utilizar la conexión soap a través de mtom o no, por defecto esta propiedad está a false.
  • httpStatusExpected:
  • SoapAction: Indica el valor del header "SoapAction" (solamente para peticiones SOAP)
  • AdditionalMarshallClasses: Indica clases adicionales para hacer la transformación de la respuesta al objeto de vuelta (solamente peticiones SOAP)
  • UrlRelative: url relativa con respecto a la URI establecida en el método "createXXX" a utilizar en la invocación

De esta forma podríamos generar un servicio (factoría de peticiones), por ejemplo, de la siguiente forma:

URI uri = new URI("http://servicios.generales.cantabria.es/api/v1");
AmapSWClienteFactory cliente = AmapSWClienteFactory.createREST(uri,aplicacion,usuario)
 .setTimeout(5_000)
 .addHeader("cabecera1","valorCabecera1")
 .addHeader("cabecera2","valorCabecera2")
 .setAtenticationBasica("admin", "abcd")
 .setAplicacion("app1")
 .setUsuario("usr1");

Configuración de la factoría de métodos de servicios web

Una vez que disponemos de un AmapSWClienteFactory (cliente) podemos crear a su vez un objeto que represente un método concreto del web service, que nos permitirá a su vez realizar peticiones a dicho método.

Ejemplo SOAP:

WSMethodInterface<RequestClass, ResponseClass> metodo = cliente.getMetodo(RequestClass.class, ResponseClass.class); 

Ejemplo REST:

RestMethodInterface<RequestClass, ResponseClass> metodo = amapSWClienteFactory.getMetodoREST(TipoPeticionHttp.POST, ResponseClass.class);

N/A

Nombreamap-sw-cliente
Identificadoramap-sw-cliente
Grupoes.gobcantabria.amap.utilidades
Versión1.1.0
Licencia
DesarrolladorSUMA
Descripción

Componente para la invocación de servicios servicios web (WS) por parte de las aplicaciones 

Documentaciónamap-sw-cliente (JavaDoc)
Binarioamap-sw-cliente (Jar)
Dependenciasamap-sw-cliente (Librerías)

Sin particularidades. Seguir las recomendaciones del fabricante.

Contenidos

Ejemplos de uso

Una vez que disponemos de un AmapSWClienteFactory, es decir, el objeto que representa el método del web service, podemos utilizar el método invoke para realizar la petición.


RequestClass request = new RequestClass();
request.setParametro("valor1");

ResponseClass response = AmapSWClienteFactory.createSOAP(uri,aplicacion,usuario)
 .getMetodo(RequestClass.class, ResponseClass.class)
 .invoke(request);

response.getResultado();

En este ejemplo se genera una petición SOAP con el parámetro indicado y se obtiene el resultado.

Las clases RequestClass y ResponseClass se transformarán en el nodo SOAP correspondiente dentro del Body utilizando Jaxb.

Para peticiones rest la invocación se puede realizar de forma similar.


AmapSWClienteFactory.createREST(uri,aplicacion,usuario)
 .setTimeout(timeout)
 .setAutenticacionBasica(usuarioAutenticacion, passwordAutenticacion)
 .setUrlRelative(urlRelativeNode)
 .setHttpStatusExpected(HttpURLConnection.HTTP_NO_CONTENT)
 .getMetodoREST(TipoPeticionHttp.DELETE, Void.class)
 .invoke();

En este caso, la petición es rest con un timeout definido, autenticación básica, de tipo DELETE y espera un código 204 http.

© 2014 GOBIERNO DE CANTABRIA - AVISO LEGAL Y PROTECCIÓN DE DATOS