Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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 如何将swagger与我的express应用程序集成_Node.js_Express_Swagger_Swagger Ui - Fatal编程技术网

Node.js 如何将swagger与我的express应用程序集成

Node.js 如何将swagger与我的express应用程序集成,node.js,express,swagger,swagger-ui,Node.js,Express,Swagger,Swagger Ui,我总是使用适当的文档将我的节点端服务共享给其他团队。基于此文档,他们将使用我的服务 关于这件事,当我和另一个人谈话时。他建议我用招摇过市。但我不知道如何集成到我的应用程序中 我的应用程序是用Express编写的。我在谷歌上搜索过,没有找到任何好的教程。如果有人已经实施了,你能建议我吗。哪一个模块好,如何好 还想知道,它们是否还有其他库,如支持节点平台的swagger 谢谢我不完全清楚你的要求,但我想你在寻找这样的东西: 我使用这个模块,它非常棒。它公开了一些中间件,您可以将这些中间件绑定到您创建

我总是使用适当的文档将我的节点端服务共享给其他团队。基于此文档,他们将使用我的服务

关于这件事,当我和另一个人谈话时。他建议我用招摇过市。但我不知道如何集成到我的应用程序中

我的应用程序是用
Express
编写的。我在谷歌上搜索过,没有找到任何好的教程。如果有人已经实施了,你能建议我吗。哪一个模块好,如何好

还想知道,它们是否还有其他库,如支持
节点
平台的
swagger


谢谢

我不完全清楚你的要求,但我想你在寻找这样的东西:

我使用这个模块,它非常棒。它公开了一些中间件,您可以将这些中间件绑定到您创建的Express
应用程序。例如,如果您已经对服务进行了文档化,并且该文档是,那么您可以将该文档传递给中间件。中间件做了一些奇妙的事情,比如根据文档中的定义连接请求处理程序,并根据文档中的定义验证请求


它有一个伟大的,它是超级容易得到设置。我希望这对您有所帮助,并且符合您的要求。

我有使用Express模块(
swagger node Express
)记录Express API的经验。我还拥有使用手动Swagger JSON文档记录Express API的经验

我建议你不要把自己束缚在一个模块上,让你的招摇过市。大多数模块(尤其是swagger node express)强制您以不同的方式编写express代码来处理文档。使用JSON手动编写Swagger文档时,您可以编写Express并将文档与路由分离

用于设置文档样式并将其添加到网页

以下是您在开始时可以使用的一些资源:

-编辑您的招摇过市文档并查看您的更改实时更新
-JSON的招摇过市规格
-这使用了较旧版本的Swagger,请务必签出以升级到最新版本


另外,请看这个答案,它解释了手动和基于模块的swagger文档生成之间的区别->。

我这样使用swagger,因为它会在我的express应用程序上自动生成实时文档:

  • API规范:我使用YAML格式的OpenAPI(Swagger)规范记录我的代码。这要归功于我们的努力
  • Live docs:“将中间件添加到您的express应用程序中,为绑定到您的Swagger文档的Swagger UI提供服务。这将作为应用程序中托管的API的动态文档。”
然后,只需创建您希望您的文档所在的路径:

const swaggerSpec=swaggerJSDoc({
大摇大摆的定义:{
信息:{
标题:“我的应用程序API”,
版本:“1.0.0”
}
},
API:['./routes/index.js']
});
app.use('/api docs',swaggerUi.service,swaggerUi.setup(swaggerSpec));
查看如何swagger-ui-expresshan内置对swagger-jsdoc的支持。阅读和了解更多信息

API规范示例: 摘自《圣经》

/**
*大摇大摆
*/登录名:
*职位:
*描述:登录到应用程序
*产生:
*-应用程序/json
*参数:
*-名称:用户名
*描述:用于登录的用户名。
*in:formData
*必填项:true
*类型:字符串
*-名称:密码
*描述:用户的密码。
*in:formData
*必填项:true
*类型:字符串
*答复:
*       200:
*说明:登录
*/
app.post('/login',函数(req,res){
res.json(请求主体);
});
生成的文档示例:
它们看起来很像。

我最近遇到过使用swagger实现API文档。我使用了“swagger ui express”npm模块来实现它。 在运行时创建JSON,也就是说,一旦服务器开始运行,我就会捕获数据,并根据下面的文件中的swagger规范进行修改

在这里,您可以看到JSON中的swagger规范

需要“swagger ui express”模块,创建一个JSON并将该文件提供给swagger ui,如下所示

const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));

我想你正在寻找这个:

ExpressJS应用程序的OpenAPI(Swagger)规范生成器

要使其正常工作,您需要执行以下操作:

1) 安装库:
npm i express oas生成器-保存

2) 与ExpressJS集成:

const express=require('express'))
const expressOasGenerator=require('express-oas-generator')
init(app,{});
3) 打开以下URL:(用主机名替换localhost:3000)

它将根据注册的路由生成非常好的招摇过市输出:


我可以知道,您如何使用上述步骤在Swagger UI中区分授权API和未授权API吗?@Win我建议您按照Mike的回答进行操作,因为我认为这样更好。JSON与代码分离