AEP.API REST Adapter Dokumentation

Features & Nutzung

AEP.API REST Adapter stellt ein “EMT-Proxy” für die BDEW Web-API Prozesse dar.

Über diesen können (durch eine separate Absicherung) API-Requests (z.B. für den LFW24 Malo-Ident oder für Steuerhandlungen) abgesichert über AEP.API mit gültigen EMT.API Zertifikaten im Markt versendet werden.

Die API des REST Adapters ist dazu gleich der BDEW Web-API, ausschließlich erweitert um die Absender- (“tenantMpId”) und Empfänger-MPID (“partnerMpId”) und der API-ID (“apiId”) im Header der Anfrage. (Hinweis: alternativ zur Mitgabe im Request-Header können Sender und Empfänger auch per Query-Parameter senderId und partnerId übermittelt werden.)

Versand von API-Requests

AEP.API REST Adapter

  1. empfängt Daten für eine API-Anfrage von einem REST-Client,
  2. validiert den Request hinsichtlich Authentifizierung, Authorisierung und notwendiger Angaben,
  3. erstellt aus dem Request die API-Anfrage,
  4. übermittelt die API-Anfrage an den API Webservice-Client,
  5. empfängt die Antwort des Marktpartners vom API Webservice-Client und
  6. leitet diese an den REST-Client weiter.

Blackbox of API-Request-Adaper-B211 Send API-Request.png

API-Request-Adaper-B211 Send API-Request.png

Hardware Anforderungen

Eine Service-Instanz erfordert mindestens 512 MB RAM.

Wir empfehlen 0,4 CPU-Kerne je Instanz.

Logs werden auf die Festplatte geschrieben, entsprechend muss genügend Speicherplatz vorhanden sein.

Abhängigkeiten

Der Service greift auf einen Message-Broker zu, um Nachrichten zu empfangen und zu versenden.

Erforderliche Konfiguration für aep-api-rest-adapter.properties

Message-Broker einrichten

rabbitmq.host=localhost
rabbitmq.port=5672
rabbitmq.username=guest
rabbitmq.password=guest

Optionale Konfiguration aep-api-webservice-client.properties

Die Namen der Exchanges, die der Adapter für den Versand und Empfang von Nachrichten verwendet, können bei Bedarf angepasst werden:

outboundApiRequestExchangeName=api.request.address
inboundApiResponseExchangeName=api.client.response

Wenn im Header der Anfrage keine apiId mitgesendet wird, kann der Adapter auf einen Default zurückgreifen. Dieser muss dafür konfiguriert sein:

adapter.defaultApiId: 'API00003'

Über diese Eigenschaft können Sie das Verbindungszeitlimit für die Anfragen ändern (default: 15 Sekunden):

adapter.connectionTimeout=30

Wenn Sie möchten, dass eine Exception geworfen wird, wenn zu einer empfangenen Antwort kein wartender Anfragethread gefunden wird, richten Sie diese Eigenschaft ein:

adapter.throwExceptionIfNoThreadIsFound=true

Ändern Sie die Protokollierungsebene auf Root-Ebene. Der Standardwert ist INFO.

logging.level.root=INFO

Sie können die Protokollierungsstufe auch auf Paketebene ändern, indem Sie die folgende Eigenschaft verwenden

logging.level.aep.api.rest.adapter=DEBUG
View Me   Edit Me