Verificamos profundamente cada post de nuestra página web con la meta de mostrarte en todo momento información más veraz y actualizada.
Solución:
La pregunta es un poco vieja pero aún así. Es posible generar especificaciones de Swagger (OpenAPI) de forma totalmente automática simplemente incorporando un middleware de análisis como este: https://github.com/mpashkovskiy/express-oas-generator
const express = require('express');
const expressOasGenerator = require('express-oas-generator');
let app = express();
expressOasGenerator.init(app, );
ejecute algunas pruebas de cliente o API REST contra su servicio y abra http://host:port/api-docs
No es difícil integrar Swagger en aplicaciones expresas existentes siguiendo este tutorial.
Generalmente, podemos seguir estos pasos:
-
Agregue las dependencias en nuestro
package.json
y corrernpm install
para instalarlos. Las dependencias deben ser:"dependencies": "swagger-node-express": "~2.0", "minimist": "*", "body-parser": "1.9.x", ...
-
Descarga el proyecto zip de Swagger-UI, copia el
dist
carpeta en el directorio raíz de nuestro proyecto, el directorio debería casi como:
-
Introduzca las dependencias al principio de
app.js
:var argv = require('minimist')(process.argv.slice(2)); var swagger = require("swagger-node-express"); var bodyParser = require( 'body-parser' );
-
Configure una ruta secundaria para swagger doc:
var subpath = express(); app.use(bodyParser()); app.use("/v1", subpath); swagger.setAppHandler(subpath);
-
Asegúrate de eso
/dist
es capaz de servir static archivos en expreso:
app.use(express.static('dist'));
-
Establezca la información para la API:
swagger.setApiInfo( title: "example API", description: "API to do something, manage something...", termsOfServiceUrl: "", contact: "[email protected]
-
Introducir
/dist/index.html
para la interfaz de usuario de swagger:subpath.get('/', function (req, res) res.sendfile(__dirname + '/dist/index.html'); );
-
Complete las configuraciones de swagger:
swagger.configureSwaggerPaths('', 'api-docs', ''); var domain = 'localhost'; if(argv.domain !== undefined) domain = argv.domain; else console.log('No --domain=xxx specified, taking default hostname "localhost".'); var applicationUrl = 'http://' + domain; swagger.configure(applicationUrl, '1.0.0');
-
Configure la dependencia del archivo doc en
/dist/index.html
:if (url && url.length > 1) url = decodeURIComponent(url[1]); else
url = "http://petstore.swagger.io/v2/swagger.json";url = "/api-docs.json"; -
Crear
api-docs.json
archivo con la información de sus API, póngalo en eldist
carpeta.
Ejecute la aplicación Express en local, visite http://localhost:3000/v1
podemos consultar el documento swagger.
Aquí está mi repositorio de muestra de prueba para su referencia.
Recuerda algo, que tienes la opción de valorar esta reseña si te fue de ayuda.