5.- Casos de uso y ejemplos SEDA

Ejemplo 1: Obtener listado de detalles de las signaturas



El servicio de consulta de un listado de detalles de las signaturas puede tener diversas aplicaciones puntuales. El ejemplo de invocación que se muestra a continuación será de utilidad para consultar los detalles filtrando por varias signaturas y un organismo productor de ejemplo.

Utilizando Java 8 y GSON.


Invocación
// PASO 1: Establecer los parámetros de búsqueda
// Id de la aplicación que está accediendo a SEDA
String APPLICATION_ID = "XXX";

// Paso 2. Conectar
URL url = new URL("http://preaplicaciones.aragon.es/seda_core/rest/getSignatures?" +
        "applicationId=" + APPLICATION_ID + "&signatures=1,2,5&organismCodes=ORG99999");

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "application/octet-stream");
connection.connect();

// Paso 3. Comprobar respuesta correcta
if (connection.getResponseCode() != 200) {
  // Gestionar respuesta incorrecta
}


// Paso 4. Recuperamos la respuesta del servicio en formato String
StringBuilder responseStrBuilder = new StringBuilder();
BufferedReader streamReader = new BufferedReader(
        new InputStreamReader(connection.getInputStream(), "UTF-8"));
String inputStr;
while ((inputStr = streamReader.readLine()) != null) {
  responseStrBuilder.append(inputStr);
}

// Paso 5. Configurar GSON para recuperar las fechas desde formato UNIX
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Date.class, (JsonDeserializer<Date>) (json, typeOfT, context) ->
        new Date(json.getAsJsonPrimitive().getAsLong()));
Gson gson = builder.create();

// Paso 6. Convertir la respuesta
JsonArray json = gson.fromJson(responseStrBuilder.toString(), JsonArray.class);
GetSignaturesResponse[] listServices = gson.fromJson(json, GetSignaturesResponse[].class);

// Paso 7. Desconectar
connection.disconnect();

 


Ejemplo 2: Recibir evento de SEDA por medio de SGA


El gestor habrá publicado, dado de baja o modificado una signatura ya publicada y esto generará un evento para las aplicaciones integradores.  Para la recepción de los eventos a los que se haya suscrito la aplicación integradora, debe implementar un servicio rest, accesible por SGA, que implemente la interfaz NotificationManager

Interfaz NotificationManager

Interfaz NotificationManager
/**
 * Interfaz REST común para las aplicaciones que integren el sistema de eventos
 *
 */
public interface NotificationManager{    
    @PUT
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    Map<Long, Boolean> processNotification(RestEvent eventData);
}


La aplicación obtendrá un objeto JSON como el siguiente:


Datos SGA-Eventos
{
  signature: 5;
  parentSignature: 3300;
  state: MODIFICADO;
  name: Gestiones del carnet de artesano;
  shortName: Gestiones del carnet de artesano;
  isHorizontal: false;
  prodOrgCode: ORG17545;
}

La aplicación interesada consulta estos datos y comunica a SGA el resultado.

Para más información acerca de los eventos, consulte la documentación de SGA.