Consulta API Guía de Migración V2

Cambios en la Especificación de V1

La Consulta V2 API fue introducido para eliminar todo /payment-objects puntos finales relacionados y unificar los parámetros de búsqueda para los cuatro /views/summaries/ puntos finales. Se han realizado los siguientes cambios:

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

    • /views/summaries/recalls→`/api/v2/views/summaries/recalls`

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

    • etc.

  • Puntos finales del objeto de pago eliminados:

    • /all/payment-objects

    • /all/payment-objects/{odsObjectId}

    • /all/payment-objects/{paymentObjectId}/history

    • Cada /catalogue/payment-objects/ el punto final ha sido eliminado (por ejemplo,/catalogue/payment-objects/PAIN_001_CREDIT_TRANSFER_TRANSACTION)

  • Los parámetros de búsqueda para los cuatro /views/summaries/ Los puntos finales de búsqueda han sido unificados. Anteriormente, estos cuatro API los endpoints tenían una mezcla de campos de búsqueda similares y únicos, ahora cada endpoint puede ser consultado utilizando cualquiera de los parámetros de búsqueda combinados. Este cambio ha sido introducido como resumen personalizado mappings permita a los clientes completar cualquier campo en un Resumen, independientemente del tipo de recorrido. Esto afecta los siguientes puntos finales:

    • /api/v2/views/summaries/payments

    • /api/v2/views/summaries/recalls

    • /api/v2/views/summaries/batches

    • /api/v2/views/summaries/bulks

  • La clase de respuesta para todos /views/summaries/ los puntos finales han cambiado a SummaryView, eliminando el uso de las clases distintas PaymentSummaryView,RecallSummaryView,BulkSummaryView y BatchSummaryView. Las cuatro clases en desuso extendieron todas SummaryView sin cambios funcionales, la estructura y la respuesta de la API mantenerse consistente con la implementación V1. Esto afecta los siguientes puntos finales:

    • /api/v2/views/summaries/payments

    • /api/v2/views/summaries/payments/{unitOfWorkId}

    • /api/v2/views/summaries/recalls

    • /api/v2/views/summaries/recalls/{unitOfWorkId}

    • /api/v2/views/summaries/batches

    • /api/v2/views/summaries/batches/{unitOfWorkId}

    • /api/v2/views/summaries/bulks

    • /api/v2/views/summaries/bulks/{unitOfWorkId}

Migrando Conectores de Cliente

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

Si ya está utilizando el cliente V1 APIs y no desean migrar al cliente V2 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=1`
Esto asegurará al cliente V1 APIs puede ser habilitado y no se requerirá un cambio de código. Consulte Consulta V1 API documentación del cliente para más información sobre el cliente V1 APIs que se puede habilitar.

El Cliente V2 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 V2 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 en el Conector del Cliente de V1

La diferencia del conjunto de V1 beans es que el PaymentSummaries,BulkSummaries,BatchSummaries, y RecallSummaries beans han sido reemplazados por el Summaries bean, y el PaymentObjects bean ha sido eliminado. Al migrar al Cliente V2 APIs, se deben realizar los siguientes cambios en el código:

  • Reemplace el uso de las interfaces de resumen con Summaries. La diferencia entre ellos es que el Summaries el objeto de solicitud de búsqueda requiere una instancia de la SummarySearchFields clase, mientras que los otros, p. ej.PaymentSummaries requiere una instancia de la PaymentSummarySearchFields clase. El nuevo SummarySearchFields La clase contiene todos los campos disponibles dentro de cada una de las clases de campos de búsqueda V1.

  • Todos los usos de las clases PaymentSummaryView,RecallSummaryView,BatchSummaryView, y BulkSummaryView debe ser reemplazado con el SummaryView clase. Las cuatro clases obsoletas todas extendían SummaryView sin cambios funcionales, por lo que la migración es solo un cambio de nombre de clase.

  • Cualquier uso de PaymentObjects debe ser reemplazado por MdsObjects. El MdsObjects la interfaz proporciona la misma funcionalidad que PaymentObjects, pero con cambios en los nombres de campo y método de paymentObject to mdsObject.

Migrando Cliente de Pruebas

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

Uso Tanto los Clientes de Prueba V1 como V2 pueden ser utilizados al mismo tiempo. Si usted está migrando de V1 a V2, deberá actualizar su conjunto de pruebas para utilizar el InquiryClientV2 interfaz

El método InquiryClient createInquiryClientV2 devolverá una instancia predeterminada de la InquiryClientV2 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 V1

La diferencia entre el Cliente de Prueba V1 y V2 APIs son los siguientes:

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

  • El Payments,Batches,Bulks, y Recalls las interfaces han sido desaprobadas, para ser reemplazadas con el Summaries1 interfaz.

    • El Summaries1 la interfaz utiliza el SummarySearchFields clase, mientras que Payments utiliza el PaymentSummarySearchFields clase

  • El PaymentObjects la interfaz ha sido eliminada de la InquiryClient2 interfaz

    • El MdsObjects la interfaz debe ser utilizada en su lugar