Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为现有NodeJS服务器生成Swagger文档_Node.js_Api_Azure_Server_Swagger - Fatal编程技术网

Node.js 为现有NodeJS服务器生成Swagger文档

Node.js 为现有NodeJS服务器生成Swagger文档,node.js,api,azure,server,swagger,Node.js,Api,Azure,Server,Swagger,根据,有两种方法:自下而上和自上而下 我有一个现有的NodeJS服务器,我想在Azure环境中部署它,它需要一个招摇过市的文档(API应用程序) 有人知道使用代码生成招摇的工具吗?如果你能点一个教程就更好了。我找不到它。在exist express应用程序中集成Swagger并不困难 一般来说,我们可以遵循以下步骤: 在我们的package.json中添加依赖项,然后运行npm install来安装它们。依赖项应为: "dependencies": { "swagger-node

根据,有两种方法:自下而上和自上而下

我有一个现有的NodeJS服务器,我想在Azure环境中部署它,它需要一个招摇过市的文档(API应用程序)


有人知道使用代码生成招摇的工具吗?如果你能点一个教程就更好了。我找不到它。

在exist express应用程序中集成Swagger并不困难

一般来说,我们可以遵循以下步骤:

  • 在我们的
    package.json
    中添加依赖项,然后运行
    npm install
    来安装它们。依赖项应为:

    "dependencies": {
            "swagger-node-express": "~2.0",
            "minimist": "*",
            "body-parser": "1.9.x",
            ...
    }
    
  • 下载的zip项目,将
    dist
    文件夹复制到我们项目的根目录中,该目录大致如下:

  • app.js的开头介绍依赖项:

    var argv = require('minimist')(process.argv.slice(2));
    var swagger = require("swagger-node-express");
    var bodyParser = require( 'body-parser' );
    
  • 为swagger文档设置子路径:

    var subpath = express();
    app.use(bodyParser());
    app.use("/v1", subpath);
    swagger.setAppHandler(subpath);
    
  • 确保
    /dist
    能够在express中提供静态文件:
    app.use(express.static('dist'))

  • 设置API的信息:

    swagger.setApiInfo({
        title: "example API",
        description: "API to do something, manage something...",
        termsOfServiceUrl: "",
        contact: "yourname@something.com",
        license: "",
        licenseUrl: ""
    });
    
  • 为swagger用户界面引入
    /dist/index.html

    subpath.get('/', function (req, res) {
        res.sendfile(__dirname + '/dist/index.html');
    });
    
  • 完成招摇过市配置:

    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');
    
  • /dist/index.html
    中配置文档文件相关性:

    if (url && url.length > 1) {
        url = decodeURIComponent(url[1]);
    } else {
        <del>url = "http://petstore.swagger.io/v2/swagger.json";</del>
        url = "/api-docs.json";
    }
    
    if(url&&url.length>1){
    url=decodeURIComponent(url[1]);
    }否则{
    url=”http://petstore.swagger.io/v2/swagger.json";
    url=“/api docs.json”;
    }
    
  • 使用api的信息创建
    api docs.json
    文件,将其放入
    dist
    文件夹中

  • 在本地运行Express应用程序,访问
    http://localhost:3000/v1
    ,我们可以查看招摇文档


    这是我的简历供你参考

    据我所知,您的选择是:

  • 在我看来,使用它是非常麻烦的
  • 根据本文的建议,在的帮助下,自己手动编写招摇过市文档

  • 如果您选择选项2,您可以使用来生成招摇过市的用户界面。这个问题有点旧,但仍然存在。只需嵌入如下分析中间件,就可以完全自动生成Swagger(OpenAPI)规范:


    对您的服务运行一些客户端或REST API测试并打开

    许多开发人员仍然存在这个问题,因此我构建了一个开源工具来帮助他们——这个工具有点像Git for API。它的工作原理是在开发API时运行代理,分析流量,并在API行为发生变化时为您更新规范。希望工作流能为您节省大量时间:

    大多数备选方案都需要通过Json、Yaml甚至嵌入JSDOC的某种API规范。另一方面,有一些运行时分析器拦截HTTP请求并按需构建该规范

    采用不同的方法在设置时检查express对象及其路线。因此,它始终为现有express实例上安装的路由提供最新的招摇过市UI

    const sitemap=require('express-sitemap-html')
    ...
    sitemap.swagger('Title',app)//app是一个express实例
    

    然后从您的域
    /api docs

    获取swagger UI,您的Nodejs服务器构建在哪个框架上?如果是Express,您可以参考。要将Nodejs应用程序部署到Azure Web应用程序,请参阅@GaryLiu MSFT yes I used express。我尝试了你发送的这个项目,但我不能真正理解它。在教程中,它告诉你要准备好所有的东西,顺便说一句,还有很多代码,但是它没有说明如何生成swagger文档……我想你可以先按照一步一步的教程来构建swagger文档,或者你能告诉我哪一步阻碍了你吗?也许你需要这样的东西?根据这一点,您可以使用模块'swagger jsdoc'从您的项目生成swagger文档。这不会“生成”任何内容。它只是在应用程序旁边提供swaggerUI?我从我的express 3应用程序生成simple swagger.json,通过软件包导入到Postman应用程序。我是为自己设计的,但可能对某些人有用。Swagger项目编辑器将在
    Swagger project Editor
    之后使用它吗?Downvote,因为它不是生成的,它是手动工作,不是“不难的”。您好,谢谢您提供的信息。我也在使用express oas generator使api文档正常工作,但作为回应,它不会在ui中更新。有时它会更新。您无法帮助解决该问题。我可以请您创建一个问题,并在此处详细描述该问题吗:?
    const express = require('express');    
    const expressOasGenerator = require('express-oas-generator');
    let app = express();
    expressOasGenerator.init(app, {});