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
- empfängt Daten für eine API-Anfrage von einem REST-Client,
- validiert den Request hinsichtlich Authentifizierung, Authorisierung und notwendiger Angaben,
- erstellt aus dem Request die API-Anfrage,
- übermittelt die API-Anfrage an den API Webservice-Client,
- empfängt die Antwort des Marktpartners vom API Webservice-Client und
- leitet diese an den REST-Client weiter.


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