Para algunas API REST escritas en PHP, se me pidió que creara la documentación de Swagger , y como no conocía ninguna forma fácil de agregar anotaciones a esas API existentes y crear dicha documentación, usé este editor para generar algunas por ahora.
Guardé los archivos JSON y YAML creados con ese editor, y ahora necesito crear la documentación interactiva final de Swagger (esta declaración puede sonar ingenua y vaga).
¿Alguien puede decirme cómo puedo convertir el archivo de especificación Swagger JSON en la documentación real de Swagger?
Estoy en la plataforma Windows y no sé nada sobre Ant / Maven.
yaml
swagger
swagger-php
Salil
fuente
fuente
Respuestas:
No estaba satisfecho
swagger-codegen
cuando estaba buscando una herramienta para hacer esto, así que escribí la mía propia. Eche un vistazo a bootprint-swaggerEl objetivo principal en comparación con
swagger-codegen
es proporcionar una configuración fácil (aunque necesitará nodejs). Y debería ser fácil adaptar el estilo y las plantillas a sus propias necesidades, que es una funcionalidad básica del proyecto bootprint .fuente
spectacle
genera una documentación mucho más atractiva de swagger JSONIntenta usar redoc-cli .
Yo estaba usando bootprint-API abierta por el cual yo estaba generando un montón de archivos (
bundle.js
,bundle.js.map
,index.html
,main.css
ymain.css.map
) y luego se puede convertir en un solo.html
archivo usando html-inline para generar un sencilloindex.html
archivo.Luego encontré redoc-cli muy fácil de usar y la salida es realmente impresionante, un único y hermoso index.html archivo .
Instalación :
npm install -g redoc-cli
Uso :
redoc-cli bundle -o index.html swagger.json
fuente
npx redoc-cli ...
es más confiable.Echa un vistazo a pretty-swag
Tiene
Estaba mirando Swagger Editor y pensé que podría exportar el panel de vista previa, pero resultó que no puede. Así que escribí mi propia versión.
Divulgación completa: soy el autor de la herramienta.
fuente
allOf
en el documento produceundefined
, incluso en los escenarios más simples ("fusionar" un solo objeto, equivalente a no usarallOf
nada).allOf
función para ti. Echale un vistazo.Todo era demasiado difícil o estaba mal documentado, así que resolví esto con un simple script swagger-yaml-to-html.py , que funciona así
python swagger-yaml-to-html.py < /path/to/api.yaml > doc.html
Esto es para YAML, pero modificarlo para que funcione con JSON también es trivial.
fuente
Vea el proyecto swagger-api / swagger-codegen en GitHub; el proyecto README muestra cómo usarlo para generar HTML estático. Consulte Generación de documentación de api HTML estática .
Si desea ver swagger.json, puede instalar la interfaz de usuario de Swagger y ejecutarla. Simplemente impleméntelo en un servidor web (la carpeta dist después de clonar el repositorio de GitHub) y vea la IU de Swagger en su navegador. Es una aplicación de JavaScript.
fuente
Pasé mucho tiempo y probé muchas soluciones diferentes; al final, lo hice de esta manera:
<html> <head> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/swagger-ui.css"> <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script> <script> function render() { var ui = SwaggerUIBundle({ url: `path/to/my/swagger.yaml`, dom_id: '#swagger-ui', presets: [ SwaggerUIBundle.presets.apis, SwaggerUIBundle.SwaggerUIStandalonePreset ] }); } </script> </head> <body onload="render()"> <div id="swagger-ui"></div> </body> </html>
Solo necesita tener la ruta / a / mi / swagger.yaml desde la misma ubicación.
(o use encabezados CORS)
fuente
También puede descargar swagger ui desde: https://github.com/swagger-api/swagger-ui , tomar la carpeta dist, modificar index.html: cambiar el constructor
const ui = SwaggerUIBundle({ url: ...,
dentro
const ui = SwaggerUIBundle({ spec: YOUR_JSON,
ahora la carpeta dist contiene todo lo que necesita y se puede distribuir como está
fuente
Eche un vistazo a este enlace: http://zircote.com/swagger-php/installation.html
Si necesita otra ayuda, no dude en preguntar.
fuente
Hay un pequeño programa Java que genera documentos (adoc o md) a partir de un archivo yaml.
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder() .withMarkupLanguage(MarkupLanguage.ASCIIDOC) .withSwaggerMarkupLanguage(MarkupLanguage.ASCIIDOC) .withOutputLanguage(Language.DE) .build(); Swagger2MarkupConverter builder = Swagger2MarkupConverter.from(yamlFileAsString).withConfig(config).build(); return builder.toFileWithoutExtension(outFile);
Desafortunadamente, solo es compatible con OpenAPI 2.0 pero no con OpenAPI 3.0 .
fuente
Para Swagger API 3.0, ¡generar código de cliente Html2 desde Swagger Editor en línea funciona muy bien para mí!
fuente
Encontré esta herramienta llamada api-html muy útil. Está generando una interfaz de usuario html5 impresionante con muchas posibilidades.
Hay opciones para generar en línea o mediante la herramienta cli .
Aquí hay un enlace a la demostración basada en "api-html": pets-demo
fuente