Verzeichnis
Swagger Artikelzusammenfassung
Beschreibung der Projektversion:
Generieren Sie Asciidoc- oder Markdown-Dokumente
Fügen Sie das swagger2markup-Plugin hinzu
Generieren Sie Asciidoc- oder Markdown-Dokumente
Lösen Sie das Problem verstümmelter und leerer PDF-Dateien:
Generieren Sie gleichzeitig HTML- und PDF-Dokumente
Generieren Sie gleichzeitig HTML- und PDF-Dokumente
Swagger Artikelzusammenfassung
Einführung in Swagger2Markup
Swagger2Markup ist ein Open Source Projekt auf Github. Das Projekt wird hauptsächlich verwendet, um von Swagger automatisch generierte Dokumente in verschiedene gängige Formate für eine einfache statische Bereitstellung und Verwendung zu konvertieren, z. B.: AsciiDoc, Markdown, Confluence.
Projekthomepage: https://github.com/Swagger2Markup/swagger2markup
Beschreibung der Projektversion:
- Federstiefel 2.0.x.
- Prahlerei 2.8.0
swagger2markup Code Weg
Schritt 1: Bearbeiten und pom.xml
Hinzufügen zugehöriger Abhängigkeiten und Repositorys, die verwendet werden müssen
<dependency>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup</artifactId>
<version>1.3.1</version>
</dependency>
Was von den Komponenten abhängt, sollten diese beiden beachten. In der Offline-Entwicklungsumgebung müssen Sie sie manuell zum lokalen Warehouse hinzufügen
<dependency>
<groupId>nl.jworks.markdown_to_asciidoc</groupId>
<artifactId>markdown_to_asciidoc</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>nl.jworks.markdown_to_asciidoc</groupId>
<artifactId>markdown_to_asciidoc</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
Schritt 2: Schreiben Sie einen Unit-Testfall, um Code zu generieren, der die generierte Dokumentation ausführt
AsciiDoc generieren
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class DemoApplicationTests {
@Test
public void generateAsciiDocs() throws Exception {
// 输出Ascii格式
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage(MarkupLanguage.ASCIIDOC)
.build();
Swagger2MarkupConverter.from(new URL("http://localhost:8080/v2/api-docs"))
.withConfig(config)
.build()
.toFolder(Paths.get("src/docs/asciidoc/generated"));
}
}
- Generiert durch Java-Code: Es müssen nur
withMarkupLanguage
Attribute geändert werden, um unterschiedliche Formate undtoFolder
Attribute anzugeben, um unterschiedliche Ausgabeverzeichnisse für die Ergebnisse anzugeben.
Markdown generieren
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage(MarkupLanguage.MARKDOWN)
.build();
Swagger2MarkupConverter.from(new URL("http://localhost:8080/v2/api-docs"))
.withConfig(config)
.build()
.toFolder(Paths.get("src/docs/markdown/generated"));
Konfluenz erzeugen
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage(MarkupLanguage.CONFLUENCE_MARKUP)
.build();
Swagger2MarkupConverter.from(new URL("http://localhost:8080/v2/api-docs"))
.withConfig(config)
.build()
.toFolder(Paths.get("src/docs/confluence/generated"));
Der Inhalt des obigen Codes ist sehr einfach und umreißt einige wichtige Inhalte:
MarkupLanguage.ASCIIDOC
: Gibt das endgültige Format an, das ausgegeben werden soll. Neben ASCIIDOC gibt es MARKDOWN und CONFLUENCE_MARKUPfrom(new URL("http://localhost:8080/v2/api-docs")
: Geben Sie die Quellkonfiguration zum Generieren statischer Bereitstellungsdokumente an. Diese kann in Form einer URL oder eines String-Typs vorliegen, der der Swagger-Spezifikation entspricht, oder als Stream, der aus einer Datei gelesen wird. Wenn es sich um das aktuelle Swagger-Projekt handelt, verwenden wir den Zugriff auf die lokale Swagger-Schnittstelle. Wenn es sich um die von außen erhaltene Swagger-Dokumentkonfigurationsdatei handelt, können Sie die Zeichenfolge verwenden oder die Datei lesen.toFolder(Paths.get("src/docs/asciidoc/generated")
: Geben Sie den spezifischen Verzeichnisspeicherort der endgültig generierten Datei an
Nach dem Ausführen der obigen Testfälle können wir den folgenden Inhalt im src-Verzeichnis des aktuellen Projekts abrufen:
AsciiDoc
src
--docs
----asciidoc
------generated
--------definitions.adoc
--------overview.adoc
--------paths.adoc
--------security.adoc
Abschlag und Zusammenfluss
src
--docs
----confluence
------generated
--------definitions.txt
--------overview.txt
--------paths.txt
--------security.txt
----markdown
------generated
--------definitions.md
--------overview.md
--------paths.md
--------security.md
Es ist ersichtlich, dass nach dem Ausführen dieser Methode vier verschiedene statische Dateien generiert werden.
Ausgabe in eine einzelne Datei
Wenn Sie möchten , um die Ergebnisdatei nicht geteilt, so kann sie durch ersetzt werden , toFolder(Paths.get("src/docs/asciidoc/generated")
wie toFile(Paths.get("src/docs/asciidoc/generated/all"))
das Umwandlungsergebnis ausgegeben wird in einer einzigen Datei, die letztlich auch eine einzelne HTML erzeugen kann.
swagger2markup Plugin Methode
Generieren Sie Asciidoc- oder Markdown-Dokumente
Fügen Sie das swagger2markup-Plugin hinzu
<plugin>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<swaggerInput>http://localhost:9210/v2/api-docs</swaggerInput>
<!-- 生成asciidoc格式 -->
<outputFile>src/docs/asciidoc/generated/all</outputFile>
<!-- <outputDir>src/docs/asciidoc/generated</outputDir>-->
<!-- 生成markdown格式 -->
<!-- <outputFile>src/docs/markdown/generated/all</outputFile>-->
<config>
<!-- 生成asciidoc格式 -->
<swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
<!-- 生成markdown格式 -->
<!-- <swagger2markup.markupLanguage>MARKDOWN</swagger2markup.markupLanguage>-->
<swagger2markup.outputLanguage>ZH</swagger2markup.outputLanguage>
<swagger2markup.generatedExamplesEnabled>true</swagger2markup.generatedExamplesEnabled>
<swagger2markup.inlineSchemaEnabled>false</swagger2markup.inlineSchemaEnabled>
<swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>
</config>
</configuration>
</plugin>
Generieren Sie Asciidoc- oder Markdown-Dokumente
- Führen Sie das Projekt aus
- Führen Sie das swagger2markup-Plugin: maven window: Plugins.swagger2markup unter dem angegebenen Projekt aus
Verwandte Anweisungen
- swaggerInput : Die von swagger generierte Schnittstelle json- Datendatei .
- Ausgabe :
- outputFile: Ausgabe in eine einzelne Datei
- outputDir: Ausgabe in die angegebene Datei
- swagger2markup.markupLanguage : Ausgabeformat
- swagger2markup.outputLanguage : Sprachtyp: wie Chinesisch (ZH), Standard Englisch (EN)
- swagger2markup.generatedExamplesEnabled : Gibt an, ob HTTP-Anforderungs- und Antwortbeispiele generiert werden sollen, standardmäßig false
- swagger2markup.inlineSchemaEnabled : Gibt an, ob das Parameter-Inlining aktiviert werden soll
- swagger2markup.pathsGroupedBy : API-Sortierregeln werden im Allgemeinen nach Tags sortiert
Konfigurationsanweisungen für das Swagger2markup-Plugin
http://swagger2markup.github.io/swagger2markup/1.3.3/#_swagger2markup_properties
Generieren Sie HTML-Dokumente
Asciidoctor Plugin hinzufügen
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.6</version>
<configuration>
<sourceDirectory>src/docs/asciidoc/generated</sourceDirectory>
<outputDirectory>src/docs/asciidoc/html</outputDirectory>
<backend>html5</backend>
<attributes>
<!--导航栏在左-->
<toc>left</toc>
<!--显示层级数-->
<toclevels>3</toclevels>
<!--自动打数字序号-->
<sectnums>true</sectnums>
</attributes>
</configuration>
</plugin>
Generieren Sie HTML-Dokumente
- Generieren Sie Asciidoc-Dokumente
- Führen Sie Plugin: Maven Window: Plugins.asciidoctor.asciidoctor: process-asciidoc unter dem angegebenen Projekt aus
Verwandte Anweisungen
- sourceDirectory : Das Verzeichnis, in dem sich das ASCIDOC-Dokument befindet
- outputDirectory : HTML-Ausgabeverzeichnis
- Backend : Typ
Generieren Sie PDF-Dokumente
Asciidoctor Plugin hinzufügen
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.6</version>
<configuration>
<sourceDirectory>src/docs/asciidoc/generated</sourceDirectory>
<outputDirectory>src/docs/asciidoc/pdf</outputDirectory>
<backend>pdf</backend>
</configuration>
<dependencies>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-pdf</artifactId>
<version>1.5.0-alpha.16</version>
</dependency>
</dependencies>
</plugin>
Generieren Sie PDF-Dokumente
- Generieren Sie Asciidoc-Dokumente
- Führen Sie Plugin: Maven Window: Plugins.asciidoctor.asciidoctor: process-asciidoc unter dem angegebenen Projekt aus
Lösen Sie das Problem verstümmelter und leerer PDF-Dateien:
-
Verwenden Sie das JAR-Paket asciidoctorj-pdf im Maven-Repository mit dem Komprimierungswerkzeug, um Folgendes zu öffnen:
- Geben Sie das Verzeichnis asciidoctorj-pdf-1.5.0-alpha.16.jar \ gems \ asciidoctor-pdf-1.5.0.alpha.16 \ data \ ein
- Schriftarten: Schriftdateiverzeichnis
- Themen: Konfigurationsdateiverzeichnis
-
Schriftart herunterladen:
- Schriftart herunterladen: https://github.com/chloerei/asciidoctor-pdf-cjk-kai_gen_gothic/releases
- Hinweis: Laden Sie einfach KaiGenGothicCN-Bold.It, KaiGenGothicCN-Bold-Italic.ttf, KaiGenGothicCN-Bold-Italic.ttf, KaiGenGothicCN-Bold-Italic.ttf herunter
- Legen Sie die Schriftartdatei im Schriftartenverzeichnis ab
-
Konfiguration ändern
- Geben Sie das Themenverzeichnis ein und ändern Sie die Datei default-theme.yml
- Ändern Sie die Konfiguration der Schriftartdatei entsprechend dem Attributwert base: font_family: unter font: catalog.
base: font_family: Noto Serif font: catalog: Noto Serif: normal: KaiGenGothicCN-Regular.ttf bold: KaiGenGothicCN-Bold.ttf italic: KaiGenGothicCN-Regular-Italic.ttf bold_italic: KaiGenGothicCN-Bold-Italic.ttf
Generieren Sie gleichzeitig HTML- und PDF-Dokumente
Plugin hinzufügen
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.6</version>
<configuration>
<sourceDirectory>src/docs/asciidoc/generated</sourceDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-pdf</artifactId>
<version>1.5.0-alpha.16</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>output-html</id>
<phase>generate-resources</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>html5</backend>
<outputDirectory>src/docs/asciidoc/html</outputDirectory>
<attributes>
<!--导航栏在左-->
<toc>left</toc>
<!--显示层级数-->
<toclevels>3</toclevels>
<!--自动打数字序号-->
<sectnums>true</sectnums>
</attributes>
</configuration>
</execution>
<execution>
<id>output-pdf</id>
<phase>generate-resources</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>pdf</backend>
<outputDirectory>src/docs/asciidoc/pdf</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
Generieren Sie gleichzeitig HTML- und PDF-Dokumente
- Generieren Sie Asciidoc-Dokumente
- Führen Sie Plugin: Maven Window: Plugins.asciidoctor.asciidoctor: process-asciidoc unter dem angegebenen Projekt aus
- Erstellen Sie eine Dokumentation (wählen Sie eine der beiden aus): Hinweis: Dieser Schritt dauert etwa sieben oder acht Minuten
- Führen Sie den Befehl mvn generate-resources aus
- Verwenden Sie die Idee, um einen Schnellstart einzurichten: Ausführen / Debuggen von Konfigurationen-> Maven-> Befehlszeile: Ressourcen generieren, ausführen
PDFPDF hat verstümmelte und leere Probleme
- Weitere Informationen finden Sie unter Lösen von Problemen bei der PDF-Generierung
Verwandte Anweisungen
- Ausführungen : Konfigurationen mehrerer Ausführungsaufgaben
- execute.id : nicht wiederholbar
- Sonstiges : Lesen Sie die Anweisungen zum separaten Generieren von HTML und PDF
Referenzlink:
http://blog.didispace.com/swagger2markup-markdown-confluence/