Wie generiert man swagger.json mit Hilfe von Gradle?

8

Ich möchte mit swagger-codegen REST-Clients und möglicherweise statische HTML-Dokumente generieren.

swagger-codegen benötigt jedoch swagger.json für die Eingabe.

Ich bin mir bewusst, dass ich dies von einem laufenden REST-Server mit Swagger erhalten kann.

Aber gibt es eine Möglichkeit, swagger.json direkt aus meinem Java-Code zu erhalten - also mit dem Quellcode aus dem Quellcode zu generieren - ohne die Anwendung in einem Webcontainer ausführen zu müssen und curl oder einen Browser anzuzeigen dazu?

    
tbsalling 21.09.2016, 12:07
quelle

2 Antworten

2

Das ist ein bisschen alt, aber ich habe mich genauso gefragt ... Kurz gesagt habe ich mit der Forschung begonnen:

  • Eine Beispiel-Spring-Boot-App, die eine minimalistische REST-API anzeigt;
  • Swagger-Anmerkungen zu den API-Methoden;
  • Springfox;
  • Gradle als Build-Tool;

Ich habe es geschafft, die JSON-Spezifikation als Build-Artefakt zu erzeugen, indem ich zwei verschiedene Ansätze benutzte:

  1. Durch Verwendung eines großen Ports von swagger-maven-plugin von kongchen .
  2. (Nicht sicher, ob das zählt, weil es sowieso einen Server startet.) Durch Ausführen eines Integrationstests (Spring's Mock MVC), der die Spezifikation generiert. Ich habe die Idee von hier ausgeliehen.

Ich habe meine Forschung in einem einfachen Projekt hier zusammengefasst. Siehe den Abschnitt Automation . Code und Beispiele sind enthalten.

    
Lachezar Balev 23.05.2017 06:33
quelle
1

Die Hauptidee ist, dass Sie swagger-maven-plugin und Ihre Java-Klassen in classpath für buildScript einfügen, damit Sie sie in der Klasse verwenden können, etwa so:

%Vor%

wobei die erste Zeile in den Abhängigkeiten swagger libs vom Unterprojekt erhält und die zweite Zeile Ihre Klassen, die swagger Anmerkungen enthalten sollen.

Danach können Sie maven plugin im Gradle als einfache Java-Klasse aufrufen:

%Vor%

Hier finden Sie dieses Beispiel.

    
Uladzimir Zhuraulevich 05.10.2016 08:37
quelle

Tags und Links