Diese Anwendung bietet sowohl synchrone REST APIs als auch asynchrone Message-Flows für die IBM MQ Integration. Beide API-Typen sind vollständig spezifiziert und dokumentiert.
Nach dem Start der Anwendung sind die API-Dokumentationen verfügbar unter:
- 📱 Swagger UI: http://localhost:8080/api/docs/swagger-ui
- 📄 OpenAPI YAML: http://localhost:8080/api/docs/openapi.yaml
- 📋 OpenAPI JSON Info: http://localhost:8080/api/docs/openapi.json
- 🎨 AsyncAPI Studio: http://localhost:8080/api/docs/asyncapi-studio
- 📄 AsyncAPI YAML: http://localhost:8080/api/docs/asyncapi.yaml
- 📋 AsyncAPI JSON Info: http://localhost:8080/api/docs/asyncapi.json
- 📖 Alle Dokumentationen: http://localhost:8080/api/docs/
Die REST APIs bieten synchrone HTTP-Endpunkte für:
POST /api/mq/send- Nachricht an Standard-Queue sendenPOST /api/mq/send/{queue}- Nachricht an spezifische Queue sendenGET /api/mq/receive- Nachricht von Standard-Queue empfangenGET /api/mq/receive/{queue}- Nachricht von spezifischer Queue empfangenPOST /api/mq/sendreceive- Request-Response Pattern (Nachricht senden und auf Antwort warten)GET /api/mq/health- IBM MQ Service Health Check
GET /api/messages- Alle Nachrichten abrufenGET /api/messages/{id}- Spezifische Nachricht abrufenDELETE /api/messages/{id}- Nachricht löschenGET /api/messages/by-status/{status}- Nachrichten nach Status filternGET /api/messages/by-queue/{queueName}- Nachrichten nach Queue filternGET /api/messages/count/by-status/{status}- Nachrichten zählen nach StatusPOST /api/messages/cleanup- Alte Nachrichten aufräumenGET /api/messages/health- Repository Health Check
- Batch-Job Management und Monitoring
- Performance- und Monitoring-Daten
Die AsyncAPI-Spezifikation dokumentiert asynchrone Message-Patterns:
- Request Queue (
DEV.QUEUE.1) - Eingehende Nachrichten - Response Queue (
DEV.QUEUE.2) - Ausgehende Antworten - Batch Processing Queue (
DEV.BATCH.QUEUE) - Batch-Verarbeitung - Dead Letter Queue (
DEV.QUEUE.DLQ) - Fehlgeschlagene Nachrichten - Backout Queue (
DEV.QUEUE.1.BACKOUT) - Backout-Nachrichten - Health Check Queue (
DEV.HEALTH.QUEUE) - Health Monitoring
- Send Message - Nachricht senden
- Receive Message - Nachricht empfangen
- Send Response - Antwort senden
- Process Batch Messages - Batch-Verarbeitung
- Handle Failed Messages - Fehlerbehandlung
- Handle Backout Messages - Backout-Handling
- Health Check - Gesundheitsprüfung
- Incoming Messages - Eingehende Textnachrichten
- Outgoing Messages - Verarbeitete Nachrichten
- Response Messages - Antwort-Nachrichten mit Correlation ID
- Batch Messages - Batch-Verarbeitungs-Nachrichten
- Failed Messages - Fehlgeschlagene Nachrichten mit Fehlerinformationen
- Backout Messages - Backout-Nachrichten
- Health Messages - Health-Check-Nachrichten
- Öffnen Sie http://localhost:8080/api/docs/swagger-ui
- Erkunden Sie die verfügbaren Endpunkte
- Testen Sie APIs direkt in der Benutzeroberfläche
- Exportieren Sie Client-Code für verschiedene Sprachen
- Öffnen Sie http://localhost:8080/api/docs/asyncapi-studio
- Klicken Sie auf "Open AsyncAPI Studio"
- Fügen Sie die URL ein:
http://localhost:8080/api/docs/asyncapi.yaml - Erkunden Sie die Message-Flows und Queue-Strukturen
# OpenAPI YAML herunterladen
curl -o openapi.yaml http://localhost:8080/api/docs/openapi.yaml
# AsyncAPI YAML herunterladen
curl -o asyncapi.yaml http://localhost:8080/api/docs/asyncapi.yaml# JavaScript/TypeScript Client
npx @openapitools/openapi-generator-cli generate \
-i http://localhost:8080/api/docs/openapi.yaml \
-g typescript-fetch \
-o ./generated-client
# Java Client
openapi-generator generate \
-i http://localhost:8080/api/docs/openapi.yaml \
-g java \
-o ./java-client
# Python Client
openapi-generator generate \
-i http://localhost:8080/api/docs/openapi.yaml \
-g python \
-o ./python-client# JSON Schema für Messages generieren
asyncapi generate models typescript ./asyncapi.yaml
# Java POJOs für Messages generieren
asyncapi generate models java ./asyncapi.yaml# Nachricht senden
curl -X POST http://localhost:8080/api/mq/send \
-H "Content-Type: text/plain" \
-d "Hello World"
# Nachricht empfangen
curl http://localhost:8080/api/mq/receive
# Request-Response Pattern
curl -X POST http://localhost:8080/api/mq/sendreceive \
-H "Content-Type: text/plain" \
-d "Request message"
# Nachrichten nach Status abrufen
curl http://localhost:8080/api/messages/by-status/PROCESSED
# Health Check
curl http://localhost:8080/api/mq/healthDie AsyncAPI-Spezifikation dokumentiert folgende Patterns:
- Fire-and-Forget: Nachricht senden ohne Antwort zu erwarten
- Request-Response: Nachricht senden und auf korrelierende Antwort warten
- Batch Processing: Nachrichten in Chunks verarbeiten
- Error Handling: Fehlgeschlagene Nachrichten in Dead Letter Queue
- Health Monitoring: Regelmäßige Health Checks über Message Queue
- Annotieren Sie Ihre REST-Klassen mit OpenAPI-Annotationen:
@Operation(summary = "Neue Operation", description = "Beschreibung")
@ApiResponse(responseCode = "200", description = "Erfolg")
public Response newEndpoint() { ... }- Die OpenAPI-Spezifikation wird automatisch aktualisiert
- Erweitern Sie die
asyncapi.yamlDatei um neue Channels und Operations - Definieren Sie neue Message-Schemas in der
components.schemasSektion - Aktualisieren Sie die Dokumentation
Die Spezifikationen werden automatisch aus folgenden Quellen generiert:
- OpenAPI: Jakarta REST Annotationen + MicroProfile OpenAPI Annotationen
- AsyncAPI: Manuelle YAML-Datei (kann durch Code-Scanner erweitert werden)
Die REST APIs unterstützen:
- Bearer Token Authentication (JWT)
- Konfigurierbar über
@SecurityRequirementAnnotationen
IBM MQ unterstützt:
- Basic Authentication (Username/Password)
- SSL/TLS mit Zertifikaten
- Channel-basierte Zugriffskontrolle
- Installieren Sie die "OpenAPI (Swagger) Editor" Extension
- Öffnen Sie die
openapi.yamlDatei für Syntax-Highlighting und Validierung
- Installieren Sie das "OpenAPI Specifications" Plugin
- Importieren Sie die Spezifikation für Auto-Completion
- Importieren Sie die OpenAPI-Spezifikation direkt in Postman
- Automatische Collection-Generierung mit allen Endpunkten
- Verwenden Sie aussagekräftige
summaryunddescriptionFelder - Definieren Sie Beispiele für Request/Response Bodies
- Gruppieren Sie verwandte Endpunkte mit
tags - Dokumentieren Sie alle Error Codes
- Definieren Sie klare Channel-Namen und Beschreibungen
- Nutzen Sie Message Traits für wiederverwendbare Patterns
- Dokumentieren Sie Message-Formate und Schemas
- Beschreiben Sie Operation-Binding-Details
- OpenAPI Specification: https://spec.openapis.org/oas/v3.0.3
- AsyncAPI Specification: https://www.asyncapi.com/docs/specifications/v3.0.0
- MicroProfile OpenAPI: https://github.com/eclipse/microprofile-open-api
- Swagger UI: https://swagger.io/tools/swagger-ui/
- AsyncAPI Studio: https://studio.asyncapi.com/
- Prüfen Sie, ob die Anwendung läuft: http://localhost:8080/api/docs/openapi.yaml
- Überprüfen Sie Browser-Konsole auf JavaScript-Fehler
- Überprüfen Sie, ob die Datei im Classpath liegt:
src/main/resources/asyncapi.yaml - Prüfen Sie Anwendungslogs auf Fehler beim Laden der Ressource
- Erweitern Sie die AsyncAPI-Spezifikation um fehlende Channels
- Fügen Sie neue Message-Schemas in der
componentsSektion hinzu