6.- Casos de uso y ejemplos SVCD
Para que una aplicación pueda utilizar servicios de SVCD, deberá estar dada de alta en la Plataforma de Autorización de Usuarios y además, deberá tener permiso sobre el servicio de SVCD que desee utilizar.
6.1.- Dependencias
A continuación se indica el fichero .pom de dependencias de la librería:
POM
<!-- SVCD -->
<dependency>
<groupId>SVCD</groupId>
<artifactId>svcd-client</artifactId>
<version>3.7.0</version>
</dependency>
<!-- CXF -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${cxf.version}</version> <!-- versión deseada -->
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-databinding-aegis</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-wadl2java-plugin</artifactId>
<version>${cxf.version}</version>
</dependency>
<!-- Spring framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version> <!-- versión deseada -->
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- LOG -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.19</version> <!-- versión deseada -->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.19</version> <!-- versión deseada -->
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version> <!-- versión deseada -->
</dependency>
<!-- AXIS -->
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version> <!-- versión deseada -->
</dependency>
6.2.- Consulta de identidad
A continuación, se muestra un ejemplo de cómo invocar al servicio de consulta de identidad:
Ejemplo de invocación
// Instanciamos la petición
IdentitySearchRequestExt identitySearchRequestExt = new IdentitySearchRequestExt();
// Instanciamos objeto para asignar nif
IdentificationData identificationData = new IdentificationData();
identificationData.setDocumentNumber("12345678Z");
identificationData.setDocumentType("NIF");
// Instanciamos objeto para asignar datos generales
PurposeData purposeData = new PurposeData();
// número de expediente
purposeData.setFileNumber("001");
// número de procedimiento
purposeData.setProcedureNumber("466");
// finalidad
purposeData.setPurposeText("prueba");
// tipo de consentimiento
purposeData.setConsent("Si");
// código de validación de finalidad
purposeData.setPurposeValidationCode("466");
// asignamos datos de identificación a la petición
identitySearchRequestExt.setIdentificationData(identificationData);
// asignamos datos generales a la petición
identitySearchRequestExt.setPurposeData(purposeData);
// Instanciamos objeto de parámetros de invocación
IdentityQueryInExt identityQueryInExt = new IdentityQueryInExt();
identityQueryInExt.setIdentitySearchRequest(identitySearchRequestExt);
// Código con el que la aplicación integradora se ha dado de alta en PAU
identityQueryInExt.setApplicationId("APP_CODE");
// código de organismo que invoca
identityQueryInExt.setOrganismCode("ORG07458");
// NIF del usuario que invoca
identityQueryInExt.setUserCode("00000000T");
IdentityQueryOutExt identityQueryOutExt = null;
try {
// Obtener datos a través de la petición
identityQueryOutExt = identityQueryService.identityQueryExt(identityQueryInExt);
} catch (Throwable) {
//Gestionar error
}
La clase podemos instanciar
Se muestra una posible clase cliente para realizar invocaciones:
Clase cliente
import es.aragon.svcd.core.ws.IIdentityVerificationService;
public class ClienteSVCD {
// se importa por ejemplo el servicio de verificación de identidad pero podría importarse cualquier otro
private IIdentityVerificationService identityVerificationWS;
public IdentityVerificationOut identityVerificationQuery() {
IdentityVerificationRequest identityVerificationRequest = new IdentityVerificationRequest();
IdentificationData identificacionData = new IdentificationData();
identificacionData.setDocumentNumber("30000260A");
identificacionData.setDocumentType("NIF");
SpecificIdentificationData specificIdentificationData = new SpecificIdentificationData();
specificIdentificationData.setSupportNumber("AAA013521");
UserData userData = new UserData();
userData.setName("JUAN");
userData.setSurname1("GARCÍA");
userData.setSurname2("SOTO");
PurposeData purposeData = new PurposeData();
purposeData.setFileNumber("001");
purposeData.setProcedureNumber("466");
purposeData.setPurposeText("PruebaVerificacionIdentidad");
purposeData.setConsent("Si");
UserSpecificDataVI userSpecificDataVI = new UserSpecificDataVI();
userSpecificDataVI.setGender("M");
identityVerificationRequest.setIdentificationData(identificacionData);
identityVerificationRequest.setSpecificIdentificationData(specificIdentificationData);
identityVerificationRequest.setPurposeData(purposeData);
identityVerificationRequest.setUserSpecificDataVI(userSpecificDataVI);
identityVerificationRequest.setUserData(userData);
IdentityVerificationIn identityVerificationIn = new IdentityVerificationIn();
identityVerificationIn.setIdentityVerificationRequest(identityVerificationRequest);
// Código con el que la aplicación integradora se ha dado de alta en PAU
identityVerificationIn.setApplicationId("APP_CODE");
identityVerificationIn.setOrganismCode("ORG07458");
identityVerificationIn.setUserCode("00000000T");
IdentityVerificationOut identityVerificationOut = null;
try {
identityVerificationOut = identityVerificationWS.identityVerification(identityVerificationIn);
} catch(Throwable e) {
// Gestionar error
}
}
}
6.3.- Databinding soportado
Se adjunta un ejemplo de como configurar la invocación a los clientes de los servicios de SVCD. SVCD no soporta el databinding de aegis.