/swagger/index.html eine interaktive Swagger UI
bereitstellen. Sie muss auf zwei Ebenen aktiviert werden: Das Binary muss mit
dem Build-Tag swagger kompiliert sein, und SWAGGER_ENABLED muss zur
Laufzeit gesetzt sein.
Warum sie nicht im Standard-Build enthalten ist
Release-Binarys und das offizielle Docker-Image werden ohne das Tagswagger gebaut. Die eingebettete Spezifikation und die UI-Assets vergrößern
das Binary um mehr als 30 MB (bei einem nicht gestrippten Build etwa von 55 MB
auf 88 MB) und damit auch das Image, und der Endpunkt wird im Produktivbetrieb
selten benötigt. Ohne sie bleiben die Artefakte klein und die exponierte
Angriffsfläche minimal.
Wenn Sie nur die API-Spezifikation benötigen, verwenden Sie stattdessen die
eingecheckte
docs/openapi.json
in einem beliebigen OpenAPI-Viewer.
Mit Swagger bauen
make run baut mit dem Tag und aktiviert die UI für die lokale Entwicklung
automatisch.
Zur Laufzeit aktivieren
config.yaml:
BASE_PATH. Ist SWAGGER_ENABLED=true bei einem Binary
gesetzt, das ohne das Tag gebaut wurde, protokolliert GoModel beim Start eine
Warnung und liefert unter /swagger/* nichts aus.
Spezifikation neu generieren
Führen Sie nach Änderungen an API-Annotationenmake swagger aus, um das
eingebettete docs-Paket und docs/openapi.json neu zu generieren. Details
finden Sie in
DEVELOPMENT.md.