Einführung in Swagger-Clients

Swagger, jetzt bekannt als OpenAPI, ist eine leistungsstarke Schnittstellenbeschreibungssprache, die für die Beschreibung von RESTful-APIs unter Verwendung von JSON entwickelt wurde. Sie bietet eine standardisierte Methode zur Dokumentation und Interaktion mit APIs, wodurch Entwickler Webdienste leichter verstehen und nutzen können.

Die LMC-API nutzt Swagger/OpenAPI, um ihre API-Schnittstelle klar zu spezifizieren und zu dokumentieren. Über den folgenden Link können Sie auf die Swagger-Datei „index.json“ für die API des jeweiligen Dienstes zugreifen: https://cloud.lancom.de/<microservice>/api-docs/index.json.

Eine Liste aller Microservices finden Sie in den LMC-Systeminformationen (klicken Sie auf „Informationen anzeigen“):

Liste der Micro-Services in den Systeminformationen

Swagger ist nicht nur eine Spezifikation, sondern umfasst eine Reihe von Open-Source-Tools, die das Design, die Entwicklung, die Dokumentation und die Nutzung von RESTful-Webdiensten erleichtern.

Zu den wichtigsten Funktionen gehören die automatische Generierung von Dokumentation, die Codegenerierung in mehreren Programmiersprachen und die Generierung von Testfällen.

Ausführliche Informationen zu Swagger und seinen Funktionen finden Sie in der offiziellen Dokumentation oder auf Wikipedia.

Swagger Code Generator

Swagger bietet eine Java-JAR-Datei zum Generieren von Code aus einer gegebenen API-Spezifikation (index-json).

Die aktuelle Version können Sie hier herunterladen: https://github.com/swagger-api/swagger-codegen/releases

Java-Client

Das folgende Bash-Skript generiert einen Java-Client.

#!/bin/bash

# usage:
# command <index.json> <output-dir>

java -Dapis -Dmodels -DsupportingFiles -Dmodels -jar swagger-codegen-cli.jar \
        generate -l java \
        --library resttemplate \
        --additional-properties java8=true \
        --api-package de.lcs.lmc.api \
        --model-package de.lcs.lmc.dto \
        --group-id de.lcs.lmc \
        --artifact-id de.lcs.lmc.$(basename $1 .json) \
        --artifact-version v1.0 \
        -DdateLibrary=other \
        -i $1 -o "$2/"