Saltar al contenido

Generar documento Swagger para el servidor NodeJS existente

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:

  1. Agregue las dependencias en nuestro package.jsony correr npm install para instalarlos. Las dependencias deben ser:

    "dependencies": 
            "swagger-node-express": "~2.0",
            "minimist": "*",
            "body-parser": "1.9.x",
            ...
    
    
  2. 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:

ingrese la descripción de la imagen aquí

  1. 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' );
    
  2. Configure una ruta secundaria para swagger doc:

    var subpath = express();
    app.use(bodyParser());
    app.use("/v1", subpath);
    swagger.setAppHandler(subpath);
    
  3. Asegúrate de eso /dist es capaz de servir static archivos en expreso:
    app.use(express.static('dist'));

  4. Establezca la información para la API:

    swagger.setApiInfo(
        title: "example API",
        description: "API to do something, manage something...",
        termsOfServiceUrl: "",
        contact: "[email protected]
    
    ", license: "", licenseUrl: "" );
  5. Introducir /dist/index.html para la interfaz de usuario de swagger:

    subpath.get('/', function (req, res) 
        res.sendfile(__dirname + '/dist/index.html');
    );
    
  6. 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');
    
  7. 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";
    
    
  8. Crear api-docs.json archivo con la información de sus API, póngalo en el dist carpeta.

Ejecute la aplicación Express en local, visite http://localhost:3000/v1podemos 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *