Swagger Best Practices

9

Ich definiere gerade eine Rest-API und ich beabsichtige, Swagger zu verwenden, um sie zu dokumentieren. Ich habe bereits damit begonnen, meine API-Spezifikationen mit der Open API-Spezifikation in YAML im Swagger-Editor zu definieren.

Dann verstehe ich, dass ich diese Datei dem Swagger-Codegen zur Verfügung stellen werde, um eine Server-Implementierung und auch die Swagger-UI zu erstellen (deren statische Dateien zuvor auf meinen Server kopieren), um die interaktive Dokumentation anzuzeigen.

Laut Swagger ist dies der Top-down-Ansatz .

Aber später werde ich wahrscheinlich diese API modifizieren müssen, und ich möchte es durch diese langweilige YAML-Datei, die vorher definiert wurde, machen, um die API leicht von jedem (und sprachunabhängig) modifizierbar zu machen.

  1. Besteht die Möglichkeit darin, die Definitionsdatei zu ändern und dann Swagger-codegen erneut zu verwenden? Durch diesen Ansatz denke ich, dass ich die API nicht direkt im Code des Implementierungsservers ändern kann, ohne eine veraltete Dokumentation zu riskieren.

Und wenn ich den Bottom-up-Ansatz (über die Swagger-core -Anmerkung) gewählt habe, werde ich alle weiteren Änderungen im Code des Implementierungsservers zurückhalten , und meine ursprüngliche Definitionsdatei wird nie wieder verwendbar sein.

  1. Eine andere Frage wäre also: Gibt es einen gemeinsamen Weg, mit Swagger umzugehen, wenn wir die API sowohl über die Spezifikationsdatei als auch über den Code des Implementierungsservers modifizieren wollen (ich nehme an, dass die Datei Swagger-core kann mich aus meinem Code generieren, wird nie so aussehen wie mein ursprünglicher, den ich von Hand definiert habe).

Danke für Ihre Bedenken.

    
Victor Petit 14.06.2016, 14:58
quelle

2 Antworten

7

Um die API-Dokumentation zu erhalten, ist das beste Vorgehen, das ich vorschlagen kann, ein hybrider Ansatz.

Wenn Sie zuerst die Bulk-Entwicklung durchführen müssen, gehen Sie nach dem Top-Down-Ansatz. Dies reduziert den anfänglichen Einstellungs- und Codierungsaufwand. Das ist die Grundidee hinter jedem Codegen.

Wenn es darum geht, die APIs zu pflegen oder jeden Tag (oder jede Woche) ein paar neue hinzuzufügen, folgen Sie dem Bottom-up-Ansatz. Sie haben bereits den vorherigen Code, das einzige, was Sie tun müssen, ist, weitere Annotationen oder API-Definitionen hinzuzufügen.

Wenn Sie von oben nach unten gehen, wird der Zweck der Codewartung iterativ vereitelt. Kesselplatten und selbst generierter Code geben Ihnen einen schnellen Start, nicht für den Unterhalt.

    
Sampada 16.06.2016, 06:02
quelle
4

Meine Meinung kann voreingenommen sein.

Für den API-Client sollte in den meisten Fällen keine Anpassung erforderlich sein. Wenn Sie feststellen, dass Sie es an Ihre Anforderungen anpassen müssen, kann es sinnvoll sein, über Ссылка (und bitte überprüfen Sie, welche Optionen zur Anpassung der Ausgabe zur Verfügung stehen, zB für PHP, führen Sie java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar config-help -l php aus)

Bei Server-Stubs müssen sich die Entwickler im Idealfall nur auf die Geschäfts- / Anwendungslogik konzentrieren und den Server-Stub beim Hinzufügen / Löschen / Aktualisieren von Endpunkten neu generieren (aber ich glaube nicht, dass alle Server-Stubs dies erreichen können)

Haftungsausschluss: Ich bin der Top-Beitrag für Swagger Codegen

    
William Cheng 17.06.2016 15:56
quelle

Tags und Links