ODS Ingestion API

Descripción general

El ODS Ingestion API proporciona un mecanismo para que otros sistemas introduzcan datos en ODS. Típicamente,ODS se ingesta datos de IPF Processing Data a través de Kafka, pero ODS también admite algunas limitaciones HTTP APIs para ciertos casos de uso. Para el completo OpenAPI especificación, consulte ODS Ingestion Specification.

API Casos de Uso

Asocie un Custom Identificador Con un Unit Of Work

Un cliente puede desear encontrar IPF unit of work s por su cuenta custom identificador, que ha sido determinado después de que se haya procesado el pago. El cliente puede utilizar el punto final de adjunto para enviar el identificador adicional mediante una solicitud POST.

curl --request POST \
 --url http://localhost:8080/attachments\
 --header 'Content-Type: application/json' \
 --data '{
 " unitOfWorkId ": "some-unit-of-work-id",
 "attachmentType": "IDENTIFICADOR_ALTERNATIVO",
 "name": "IdCaso",
 "value": "abc123-456efg-hij789"
}

Adjuntar notas a un Unit Of Work

curl --request POST \
 --url http://localhost:8080/attachments\
 --header 'Content-Type: application/json' \
 --data '{
 " unitOfWorkId ": "some-unit-of-work-id",
 "attachmentId": "a-id-for-the-note",
 "autor": "Dave",
 "división": "Cuentas",
 "reasonCode": "RC01",
 "attachmentType": "TEXTO",
 "name": "Notas",
 "value": "Algunas notas del operador sobre el pago"
}

Estructura del Módulo

El ods-ingestion El módulo está compuesto por varios submódulos.

ods-ingestión-api

Contiene el OpenAPI especificación, y generada Java tipos de modelo.

ods-ingestión-primavera

Genera andamiaje de controlador de Spring a partir de la especificación e incluye implementaciones de controlador de Spring y configuración de Spring.

Lo mínimo requerido para una aplicación spring webflux, que aloje el ODS Ingestion API.

Las implementaciones del controlador delegan en interfaces en ods-ingestion-port, y la aplicación debe proporcionar una implementación de estas interfaces.

ods-puerto-de-ingestión

Contiene interfaces que deben ser implementadas por la aplicación para soportar los controladores en ods-ingestion-spring, p. ej. el AttachmentHandler que persistirá el archivo adjunto contra un unit of work.

Code Generation

La especificación en ods-ingestion-api es procesado por openapi-generator, utilizando el openapi generador de back-end, configurado para producir un único json especificación de la entrada yaml especificación. Si esto yaml la especificación se dividiría en archivos más pequeños, el resultado sigue siendo un único json especificación.

Java code generation se realiza en dos partes, primero los modelos y luego el andamiaje del controlador de primavera.

Modelos

La especificación en ods-ingestion-api es procesado por openapi-generator, utilizando el spring generador de back-end, configurado para generar modelos únicamente, bajo el paquete com.iconsolutions.ipf.ods.ingestion.model.

El resultado de construir este módulo es un archivo jar que contiene un único json OpenAPI especificación y todos los tipos de modelo de Ingesta generados.

Este jar puede ser utilizado en la parte posterior, proporcionando acceso a los tipos generados y/o para generar código adicional a partir del único fat.json especificación. Este jar se utiliza en el siguiente paso, generando el andamiaje del controlador de Spring.

Controladores de Spring

El ods-ingestion-spring el módulo depende de ods-ingestion-api, y utiliza el json especificación contenida dentro de su archivo jar de salida. La especificación es procesada por openapi-generator, utilizando el spring generador de back-end, configurado para generar interfaces únicamente, bajo el paquete com.iconsolutions.ipf.ods.ingestion.api.

El resultado de construir este módulo es un archivo jar que contiene la estructura generada del controlador de Spring, incluyendo las implementaciones del controlador y la configuración de Spring necesaria para habilitar estos controladores en un Spring Boot aplicación.

Vea el Servidor Spring sección para más información.

Servidor Spring

El ods-ingestion-spring el módulo está destinado como un inicio, que puede ser incluido en cualquier Spring Boot aplicación que busca servir al ODS Ingestion API. Genera las interfaces de controladores de Spring y implementa esos controladores. Los controladores delegan en las interfaces de búsqueda, definidas en ods-ingestion-port.

Cuando la aplicación que sirve al ODS Ingestion API al iniciar, registrará el ODS Ingestion API versión.

2023-04-12 13:34:06. 348  INFO 1 --- [           main] c.i.i.o.i.api. OdsIngestionApiConfig: ODS Ingestion API Version 2. 2. 34

Puertos

La aplicación que sirve a ODS Ingestion API utilizando el andamiaje de controlador generado y las implementaciones de controlador proporcionadas, debe proporcionar beans para cada uno de los tipos definidos en ods-ingestion-port. Estas interfaces que son agnósticas a la persistencia, y actualmente implementadas en el ODS Ingestion Aplicación.

 Stub las implementaciones pueden sustituir estas interfaces si es necesario, para construir un "lite" ODS Ingestion aplicación.
Así es como se prueba la funcionalidad del controlador.

Spring Boot Actuador

El ODS Ingestion API se añade la versión a la Spring Boot Endpoint de información del actuador.

{
    "ODS Ingestion API": {
        "version": "2. 2. 34"
    }
}