swagger
swagger 是一个能够生成、描述、调用和可视化的 restful 风格的 web 服务。主要是对 rest api 接口自动生成接口说明文档。生成的接口文档也是直接在线测试。即在可视化的web 界面上直接输入参数对应的值就可以在线测试接口。
nest 框架也提供了一个专门用于支持 swagger 规范的模块。
nest 中使用 swagger
安装
首先需要安装所需要的 swagger 包
npm install --save @nestjs/swagger swagger-ui-express
初始化 swagger
在 nest 项目的 main.ts 文件中,使用 swaggermodule
类初始化 swagger
import { swaggermodule, documentbuilder } from '@nestjs/swagger'; async function bootstrap() { const options = new documentbuilder() .settitle('api example') .setdescription('the api description') .setversion('1.0') .addtag('api/v1') .build(); const document = swaggermodule.createdocument(app, options); swaggermodule.setup('api', app, document); }
- documentbuilder : 先new 一个 documentbuilder 实例,主要是为构建符合 openapi规范的基础文档,从以上demo中可以看到可以对 swagger 文档设置标题、描述、版本号、tag的相关属性。
- createdocument():用于创建文档。该方法主要接收两个参数:一个是 app 应用程序实例,一个是 swagger 选项对象。
创建完文件之后,即可调用 setup 方法。
配置完之后,就可以在运行项目,通过访问 http://localhost:3000/api, 就可以打开 swagger 的可视化界面,其中就会展示所有的接口列表。
接口中使用
所有的配置都已就位,接下来就是将每个接口都配置上 swagger ,以便接口能够展示在可视化 web界面上。
首先需要引用可支持 swagger 的模块
import { apiproperty } from '@nestjs/swagger';
在使用相关支持swagger 的装饰器方法,比如 @apiproperty() 装饰器注释所有的属性。
@apitags('user') @controller('api/v1/user') export class usercontroller { @post() @apicreatedresponse({ description: 'the record has been successfully created.', type: user }) async createuser(@body() userdto:userdto){ // doing something } } export class userdto { @apiproperty() name: string; @apiproperty() age: number }
apitags
:将控制器附加到特定的标签
@apiresponse()
:自定义 http 响应
@apiproperty()
为请求指定返回模型,创建 dto 类并使用装饰器注释所有的属性
这样设置之后,运行项目,访问 swagger 可视化界面就可以看到界面,并且在界面上测试该接口。
参考资料:docs.nestjs.cn/9/recipes?i…
以上就是nest框架中集成使用swagger示例说明的详细内容,更多关于nest框架集成swagger的资料请关注代码网其它相关文章!
发表评论