Consulta API Guía de Migración V3

Cambios en la Especificación de V2

La Consulta V3 API fue introducido para consolidar los cuatro views/summaries puntos finales a uno, con journeyType convirtiéndose en un parámetro de búsqueda en lugar de un parámetro de url. Se han realizado los siguientes cambios:

  • Todos los puntos finales han sido actualizados para tener una ruta que comience con /api/v3. Por ejemplo:

    • /api/v2/views/details/{unitOfWorkId}→`/api/v3/views/details/{unitOfWorkId}`

    • /api/v2/catalogue/process-objects/message-logs→`/api/v3/catalogue/process-objects/message-logs`

    • etc.

  • Los cuatro /views/summaries/ Los puntos finales de búsqueda han sido unificados. Anteriormente, estos cuatro API los endpoints tenían journeyType como un parámetro de URL, ahora es un parámetro de consulta. Por ejemplo:

    • /api/v2/views/summaries/payments→`/api/v3/views/summaries?journeyType=PAYMENT`

    • /api/v2/views/summaries/recalls→`/api/v3/views/summaries?journeyType=RECALL`

  • Lo que significa que estos puntos finales han sido eliminados:

    • /views/summaries/payments

    • /views/summaries/recalls

    • /views/summaries/batches

    • /views/summaries/bulks

  • La clase de respuesta para todos /api/v3/all/mds-objects y /api/v3/catalogue/mds-objects/ los endpoints han cambiado a MdsObjectSearchItem2, eliminando el uso de las clases distintas:

    • MdsObjectSearchItem

    • Pacs008FIToFICustomerCreditTransferMdsSearchItem

    • Pacs008CreditTransferTransactionMdsSearchItem

    • Pacs002FIToFIPaymentStatusReportMdsSearchItem

    • Pacs002OriginalGroupHeaderMdsSearchItem

    • Pacs002PaymentTransactionMdsSearchItem

    • Pacs004PaymentReturnMdsSearchItem

    • Pacs004PaymentTransactionMdsSearchItem

    • Pacs009FinancialInstitutionCreditTransferMdsSearchItem

    • Pacs009CreditTransferTransactionMdsSearchItem

    • Pacs028FIToFIPaymentStatusRequestMdsSearchItem

    • Pacs028OriginalGroupInformationMdsSearchItem

    • Pacs028PaymentTransactionMdsSearchItem

    • Pain001CustomerCreditTransferInitiationMdsSearchItem

    • Pain001PaymentInstructionMdsSearchItem

    • Pain001CreditTransferTransactionMdsSearchItem

    • Pain002CustomerPaymentStatusReportMdsSearchItem

    • Pain002OriginalPaymentInstructionMdsSearchItem

    • Pain002PaymentTransactionMdsSearchItem

    • Camt027ClaimNonReceiptMdsSearchItem

    • Camt029ResolutionOfInvestigationMdsSearchItem

    • Camt029PaymentTransactionWithResolutionMdsSearchItem

    • Camt029UnderlyingTransactionMdsSearchItem

    • Camt054BankToCustomerDebitCreditNotificationMdsSearchItem

    • Camt054AccountNotificationMdsSearchItem

    • Camt056FIToFIPaymentCancellationRequestMdsSearchItem

    • Camt056PaymentTransactionMdsSearchItem

    • Camt056UnderlyingTransactionMdsSearchItem

    • Camt087RequestToModifyPaymentMdsSearchItem

  • La estructura y respuesta del API manténgase consistente con la implementación V2. Esto afecta a los siguientes puntos finales:

    • /api/v3/all/mds-objects

    • /api/v3/all/mds-objects/{odsObjectId}

    • /api/v3/all/mds-objects/{mdsObjectId}/history

    • /api/v3/catalogue/mds-objects/PACS_008

    • /api/v3/catalogue/mds-objects/PACS_008_CREDIT_TRANSFER_TRANSACTION

    • /api/v3/catalogue/mds-objects/PACS_002

    • /api/v3/catalogue/mds-objects/PACS_002_ORIGINAL_GROUP_HEADER

    • /api/v3/catalogue/mds-objects/PACS_002_PAYMENT_TRANSACTION

    • /api/v3/catalogue/mds-objects/PACS_004

    • /api/v3/catalogue/mds-objects/PACS_004_PAYMENT_TRANSACTION

    • /api/v3/catalogue/mds-objects/PACS_009

    • /api/v3/catalogue/mds-objects/PACS_009_CREDIT_TRANSFER_TRANSACTION

    • /api/v3/catalogue/mds-objects/PACS_028

    • /api/v3/catalogue/mds-objects/PACS_028_ORIGINAL_GROUP_INFORMATION

    • /api/v3/catalogue/mds-objects/PACS_028_PAYMENT_TRANSACTION

    • /api/v3/catalogue/mds-objects/PAIN_001

    • /api/v3/catalogue/mds-objects/PAIN_001_PAYMENT_INSTRUCTION

    • /api/v3/catalogue/mds-objects/PAIN_001_CREDIT_TRANSFER_TRANSACTION

    • /api/v3/catalogue/mds-objects/PAIN_002

    • /api/v3/catalogue/mds-objects/PAIN_002_ORIGINAL_PAYMENT_INSTRUCTION

    • /api/v3/catalogue/mds-objects/PAIN_002_PAYMENT_TRANSACTION

    • /api/v3/catalogue/mds-objects/CAMT_027

    • /api/v3/catalogue/mds-objects/CAMT_029

    • /api/v3/catalogue/mds-objects/CAMT_029_PAYMENT_TRANSACTION_WITH_RESOLUTION

    • /api/v3/catalogue/mds-objects/CAMT_029_UNDERLYING_TRANSACTION

    • /api/v3/catalogue/mds-objects/CAMT_054

    • /api/v3/catalogue/mds-objects/CAMT_054_ACCOUNT_NOTIFICATION

    • /api/v3/catalogue/mds-objects/CAMT_056

    • /api/v3/catalogue/mds-objects/CAMT_056_PAYMENT_TRANSACTION

    • /api/v3/catalogue/mds-objects/CAMT_056_UNDERLYING_TRANSACTION

    • /api/v3/catalogue/mds-objects/CAMT_087

Migrando Conectores de Cliente

El ods-inquiry-client El módulo ha sido actualizado para soportar tanto V1, V2 como V3 Consulta. APIs. La configuración predeterminada (ods.inquiry.client.version=2) permite la instanciación del Cliente de Consulta V2 APIs y debe ser anulado explícitamente para el Cliente de Consulta V3 APIs.

Si desea migrar al cliente V3 APIs, su configuración debe ser actualizada para anular la configuración de la versión del cliente de la siguiente manera:`ods.inquiry.client.version=3`
Esto asegurará el cliente V3 APIs puede ser habilitado y se requerirá un cambio de código. Ver Consulta V3 API documentación del cliente para más información sobre el cliente V3 APIs que se puede habilitar.

El Cliente V3 disponible APIs se enumeran a continuación. Cliente API la configuración se encuentra bajo ods.inquiry.client, y todas las propiedades enumeradas a continuación deben estar precedidas por esto.

  1. Configurar el Cliente V3 APIs

Propiedad Predeterminado Notas

summaries.enabled

false

Habilite el Summaries bean cuando se establece en true

details.enabled

false

Habilite el Details bean cuando se establece en true

process-flow-graphs.enabled

false

Habilite el ProcessFlowGraphs bean cuando se establece en true

process-objects.enabled

false

Habilite el ProcessObjects bean cuando se establece en true

custom-objects.enabled

false

Habilite el CustomObjects bean cuando se establece en true

mds-objects.enabled

false

Habilite el MdsObjects bean cuando se establece en true

pds-objects.enabled

false

Habilite el PdsObjects bean cuando se establece en true

Cambios del Conector de Cliente de V2

Existen diferencias con respecto al conjunto de V2 beans:

V2 Bean Reemplazo V3 Bean Notas Nuevos campos requeridos Campos cambiados

Resúmenes

Resúmenes V3

SummaryView debe ser reemplazado por el SummaryView2 clase. Las solicitudes de búsqueda ahora requieren JourneyType como un parámetro.

createdAt,unitOfWorkId,terminal,failure

El class el campo ha sido eliminado.

ProcessObjects

Process Objects V3

- ProcessObjectSearchItem debe ser reemplazado por el ProcessObjectSearchItem2 clase
- IPFMessageLogSearchItem debe ser reemplazado por el IPFMessageLogSearchItem2 clase
- IPFSystemEventSearchItem debe ser reemplazado con el IPFSystemEventSearchItem2 clase
- IPFProcessFlowEventSearchItem debe ser reemplazado por el IPFProcessFlowEventSearchItem2 clase
- IPFProcessFlowDefinitionSearchItem debe ser reemplazado por el IPFProcessFlowDefinitionSearchItem2 clase

- OdsObjectHeaders2 requiere createdAt,clientRequestId,objectType,processingEntity,unitOfWorkId,source
- IPFMessageLogPayload requiere content
- IPFProcessFlowEvent2 requiere rawContent
- IPFProcessFlowDefinition2 requiere rawContent

- OdsObjectHeaders2 en comparación con ODSObjectHeaders tiene el version y class campos eliminados
- IPFProcessFlowEvent2 en comparación con IPFProcessFlowEvent tiene hash,terminalIndicator y labels campos añadidos
- IPFProcessFlowDefinition2 en comparación con IPFProcessFlowDefinition tiene terminalGlobalStates,states,events y rawContent campos añadidos

PdsObjects

Pds Objects V3

PdsObjectSearchItem debe ser reemplazado por PdsObjectSearchItem2. V3 ahora tiene GetPdsByUnitOfWorkIdRequest,GetPdsByOdsObjectIdRequest y GetPdsHistoryByPdsObjectIdRequest objetos en lugar de los anteriores GetPdsObjectsRequest,GetPdsObjectRequest,GetPdsRequest,GetHistoryRequest,GetPdsHistoryRequest, esto fue para alinear el API’s con el rest de la ODS tipo de objeto API’s.

links,payload y dentro del campo de carga útil content ahora es requerido.

- OdsObjectHeaders2 en comparación con ODSObjectHeaders tiene el version y class campos eliminados
- PdsObjectPayload2 en comparación con PdsObjectPayload tiene el version y metadata campos añadidos

MdsObjects

Mds Objects V3

MdsObjectSearchItem debe ser reemplazado por el MdsObjectSearchItem2 clase.

links y payload y dentro de la carga útil la content y type los campos ahora son obligatorios.

- OdsObjectHeaders2 en comparación con ODSObjectHeaders tiene el version y class campos eliminados
- MdsObjectPayload2 en comparación con MdsObjectPayload tiene metadata,type,version,messageDefinition y content campos añadidos

Detalles

Detalles V3

DetailView debe ser reemplazado por el DetailView2 clase.

- DetailView2 requiere createdAt,unitOfWorkId,terminal y failure
- PdsData2 requiere content
- EventSummaryView2 requiere processFlowDefinitionId

- SummaryView2 en comparación con SummaryView tiene el class campo eliminado
- PdaData2 en comparación con PdsData el version el campo ha cambiado de un tipo de cadena a un entero

Migrando Cliente de Pruebas

The ods-inquiry-test-client el módulo ha sido actualizado para soportar la Consulta V1, V2 y V3 APIs. Similar al Cliente APIs, un nuevo conjunto de V3 Test Client APIs están disponibles a través de la InquiryClientV3 interfaz.

Uso

Tanto los Clientes de Prueba V1, V2 como V3 pueden ser utilizados al mismo tiempo. Si está migrando de V2 a V3, deberá actualizar su suite de pruebas para utilizar el InquiryClientV3 interfaz. El método InquiryClient createInquiryClientV3 devolverá una instancia predeterminada de la InquiryClientV3 interfaz.

@Configuration
class TestClientConfig {
    @Bean
    InquiryClient inquiryClient(@Value("${inquiry.base.url}") final String baseUrl,
                                @Value("${inquiry.openapi-validation.enabled}") final boolean openApiValidation,
                                final CurrentAuthToken currentAuthToken) {
        return InquiryClient.createInquiryClient(InquiryClientOptions.builder()
                .baseUrl(baseUrl)
                .currentAuthToken(currentAuthToken)
                .requestTimeout(Duration.ofSeconds(60))
                .openApiValidation(openApiValidation)
                .build());
    }

    @Bean
    InquiryClientV2 inquiryClientV2(@Value("${inquiry.base.url}") final String baseUrl,
                                    @Value("${inquiry.openapi-validation.enabled}") final boolean openApiValidation,
                                    final CurrentAuthToken currentAuthToken) {
        return InquiryClient.createInquiryClientV2(InquiryClientOptions.builder()
                .baseUrl(baseUrl)
                .currentAuthToken(currentAuthToken)
                .requestTimeout(Duration.ofSeconds(60))
                .openApiValidation(openApiValidation)
                .build());
    }

    @Bean
    InquiryClientV3 inquiryClientV3(@Value("${inquiry.base.url}") final String baseUrl,
                                    @Value("${inquiry.openapi-validation.enabled}") final boolean openApiValidation,
                                    final CurrentAuthToken currentAuthToken) {
        return InquiryClient.createInquiryClientV3(InquiryClientOptions.builder()
                .baseUrl(baseUrl)
                .currentAuthToken(currentAuthToken)
                .requestTimeout(Duration.ofSeconds(60))
                .openApiValidation(openApiValidation)
                .build());
    }
}

Cambios del Cliente de Prueba de V2

La diferencia entre el Cliente de Prueba V2 y V3 APIs es el siguiente:

  • Todo APIs han sido actualizados para utilizar la Consulta V3 API especificación

  • El Details,MdsObjects,MessageLogs,PdsObjects,ProcessFlowDefinitions,ProcessFlowEvents,ProcessObjects,Summaries1 y SystemEvents las interfaces han sido desaprobadas, para ser reemplazadas por el DetailsV3,MdsObjectsV3,MessageLogsV3,PdsObjectsV3,ProcessFlowDefinitionsV3,ProcessFlowEventsV3,ProcessObjectsV3,SummariesV3 y SystemEventsV3 interfaces.

    • El DetailsV3 la interfaz devuelve el DetailView2 clase, mientras que Details utiliza el DetailView clase.

    • El MdsObjectsV3 la interfaz devuelve el MdsObjectSearchItem2 clase, mientras que MdsObjects utiliza el MdsObjectSearchItem or the Pacs008FIToFICustomerCreditTransferMdsSearchItem clase para el método pacs008Credit Transfer Transactions.

    • El MessageLogsV3 la interfaz devuelve el IPFMessageLogSearchItem2 clase, mientras que MessageLogs utiliza el IPFMessageLogSearchItem clase.

    • El PdsObjectsV3 la interfaz devuelve el PdsObjectSearchItem2 clase, mientras que PdsObjects utiliza el PdsObjectSearchItem clase. El PdsObjectsV3 la interfaz ahora solo tiene métodos que buscan por unitOfWorkId, odsObjectId y pdsObjectId, mientras que PdsObjects tenía métodos que también buscaban por unitOfWorkId y nombre como dos parámetros de búsqueda.

    • El ProcessFlowDefinitionsV3 la interfaz devuelve el IPFProcessFlowDefinitionSearchItem2 clase, mientras que ProcessFlowDefinitions utiliza el IPFProcessFlowDefinitionSearchItem clase.

    • El ProcessFlowEventsV3 la interfaz devuelve el IPFProcessFlowEventSearchItem2 clase, mientras que ProcessFlowEvents utiliza el IPFProcessFlowEventSearchItem clase.

    • El ProcessObjectsV3 la interfaz devuelve el ProcessObjectSearchItem2,SystemEventsV3,MessageLogsV3,ProcessFlowEventsV3 y ProcessFlowDefinitionsV3 clases, mientras que ProcessObjects utiliza el ProcessObjectSearchItem,SystemEvents,MessageLogs,ProcessFlowEvents y ProcessFlowDefinitions clases.

    • El SummariesV3 la interfaz devuelve el SummaryView2 clase y ya no utiliza el JourneyType clase como un parámetro de búsqueda, mientras que Summaries1 utiliza el SummaryView clase y usos el JourneyType clase como parámetro de búsqueda.

    • El SystemEventsV3 la interfaz devuelve el IPFSystemEventSearchItem2 clase, mientras que SystemEvents utiliza el IPFSystemEventSearchItem clase.

  • El Summaries1,Details,MdsObjects,ProcessObjects y PdsObjects las interfaces han sido reemplazadas por el SummariesV3,DetailsV3,MdsObjectsV3,ProcessObjectsV3 y PdsObjectsV3 clases para el InquiryClient3 interfaz