Biblioteca del Cliente

Esta sección le guiará sobre cómo conectarse a un Almacén de Pagos externo a través de HTTP. La guía para configurar su Java aplicación con el Almacén de Pagos expuesto como un HTTP API is aquí.

Solo el save La operación es actualmente accesible a través de la Biblioteca del Cliente.

Paso 1: Agregue la dependencia

Agregue el payment-warehouse-api-client-connector-http artefacto a su pom.xml dependencias.

<dependency>
    <groupId>com.iconsolutions.ipf.core.warehouse</groupId>
    <artifactId>payment-warehouse-api-client-connector-http</artifactId>
</dependency>

Paso 2: Configurar

La API las operaciones tienen propiedades configurables, a saber, el host y el port. La configuración de referencia proporciona estos como localhost y 8080 respectivamente. Para su implementación, deberá anular estas propiedades.

ipf.payment-warehouse-api.http.client {
  host = "localhost"
  port = "8080"
}

Paso 3: Conectar Obligatorio Spring Beans

Se requiere que tenga un Spring Bean presente en su Java aplicación de:

  1. com.iconsolutions.ipf.core.messagelogger. MessageLogger

  2. akka.actor. ClassicActorSystemProvider == Paso 4: Guarde una entrada de pago a través de la biblioteca del cliente

Su aplicación ya está lista para llamar al externo HTTP API utilizando la Biblioteca del Cliente. Puede hacer esto utilizando el paymentWarehouseClientPort Spring Bean que fue introducido por el Maven dependency en el Paso 1 y llamando a los métodos respectivos en la clase.

Estos métodos están documentados en el paymentWarehouseClientPort interfaz.

package com.iconsolutions.ipf.warehouse.client.port;

import com.iconsolutions.ipf.core.connector.api.Response;
import com.iconsolutions.ipf.core.shared.domain.context.ProcessingContext;
import com.iconsolutions.ipf.core.warehouse.model.PaymentEntryDto;
import jakarta.validation.constraints.NotNull;

import java.util.concurrent.CompletionStage;

@FunctionalInterface
public interface PaymentWarehouseClientPort {
    CompletionStage<Response<PaymentEntryDto>> save(@NotNull ProcessingContext processingContext, @NotNull PaymentEntryDto paymentEntryDto);
}

A continuación se proporciona un ejemplo de guardar una Entrada de Pago:

package com.iconsolutions.ipf.core.warehouse.client.connector.http;

import com.iconsolutions.ipf.core.connector.api.Response;
import com.iconsolutions.ipf.core.shared.domain.context.ProcessingContext;
import com.iconsolutions.ipf.core.warehouse.model.PaymentEntryDto;
import com.iconsolutions.ipf.warehouse.client.port.PaymentWarehouseClientPort;
import lombok.RequiredArgsConstructor;

import java.util.concurrent.CompletionStage;

@RequiredArgsConstructor
public class ExampleSaveViaConnector {

    private final PaymentWarehouseClientPort paymentWarehouseClientPort;

    public CompletionStage<Response<PaymentEntryDto>> save(ProcessingContext processingContext, PaymentEntryDto paymentEntryDto) {
        return paymentWarehouseClientPort.save(processingContext, paymentEntryDto);
    }
}