ODS Ingestion API
Descripción general
El ODS Ingestion API proporciona un mecanismo para que otros sistemas introduzcan datos en ODS. Típicamente,ODS los datos se ingieren 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 Identificador Personalizado Con una Unidad de Trabajo
Un cliente puede desear encontrar unidades de obra de IPF 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 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"
}
Adjunte notas a una unidad de trabajo
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-ingestion-spring
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.
Code Generation
La especificación en ods-ingestion-api es procesado por openapi-generator, utilizando el openapi generador de back-end, configurado para producir una única especificación json a partir de la especificación yaml de entrada.
Si esta especificación yaml se dividiera en archivos más pequeños, el resultado seguiría siendo una única especificación json.
Java code generation se realiza en dos partes, primero los modelos y luego el andamiaje del controlador de Spring.
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 de la única especificación json fat. Este jar se utiliza en el siguiente paso, generando el andamiaje del controlador Spring.
Controladores de Spring
El ods-ingestion-spring el módulo depende de ods-ingestion-api, y utiliza la especificación json 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 a ser un punto de partida, que puede ser incluido en cualquier Spring Boot aplicación que busca servir al ODS Ingestion API.
Genera las interfaces de los 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 al 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.
Stublas 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.