首页
学习
活动
专区
圈层
工具
发布

Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档

主要的 Swagger 工具 包括: Swagger Editor:基于浏览器的编辑器,您可以在其中编写 OpenAPI 定义 Swagger UI:将 OpenAPI 定义呈现为交互式文档 Swagger...、统一的结构,用于跨各种描述语言和序列化格式描述 API Nest 集成 Swagger 1、 安装依赖 pnpm add @nestjs/swagger swagger-ui-express 2、...setContact 文档联系信息 setLicense 文档许可证信息 addServer 文档服务地址 setExternalDoc 文档外部链接 setBasePath 设置文档基础路径 addTag...描述请求头信息,包括名称、类型、描述等 @ApiExcludeEndpoint 标记一个控制器方法不在 Swagger UI 中显示 效果图 总结 在 Nest 中集成 Swagger 文档可以帮助开发者自动生成和维护...API 文档,Swagger 的集成提供了在线生成、‌自动生成、‌可操作数据库等优点,规范了 API 的标准化和一致性,后期还可以把 Swagger 文档导入到其他平台,例如 ApiFox 不足之处就是会增加开发者的工作量

1.2K11

使用swagger作为restful api的doc文档生成

使用swagger作为restful api的doc文档生成 初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情。...甚至,接口总是需要适应新需求的,修改了,增加了,这份文档维护起来就很困难了。于是发现了swagger,自动生成文档的工具。...swagger官方更新很给力,各种版本的更新都有。swagger会扫描配置的API文档格式自动生成一份json数据,而swagger官方也提供了ui来做通常的展示,当然也支持自定义ui的。...在dropwizard中使用 详细信息见另一篇在dropwizard中使用Swagger 在spring-boot中使用 以前总是看各种博客来配置,这次也不例外。...url,还有2个ui显示的API和一个安全问题的API。

3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Swagger + Nest.js:打通全栈之路,API 文档生成的秘籍

    文档自动生成:根据API定义自动生成交互式API文档,让前端开发和测试人员能够了解如何使用API,通常通过Swagger UI来展示。...代码生成:Swagger Codegen 可以根据API定义生成服务器存根、API 客户端库和API 文档等。API 测试:Swagger 提供工具支持API的自动化测试。...模块中的一个类,用于构建 Swagger 文档的基本信息。...SwaggerModule.setup('docs', app, document) :将生成的 Swagger 文档设置在指定的路径上(这里是 '/docs'),以便 Swagger UI 可以通过该路径访问文档...提供请求头的详细信息,使开发者正确设置请求头。 @ApiExcludeEndpoint标记一个控制器方法不在 Swagger UI 中显示。

    53500

    使用swagger作为restful api的doc文档生成

    初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情。也许多点,也许少点。...甚至,接口总是需要适应新需求的,修改了,增加了,这份文档维护起来就很困难了。于是发现了swagger,自动生成文档的工具。...swagger官方更新很给力,各种版本的更新都有。swagger会扫描配置的API文档格式自动生成一份json数据,而swagger官方也提供了ui来做通常的展示,当然也支持自定义ui的。...在dropwizard中使用 详细信息见另一篇在dropwizard中使用Swagger 在spring-boot中使用 以前总是看各种博客来配置,这次也不例外。...url,还有2个ui显示的API和一个安全问题的API。

    2.7K100

    Nest.js 从零到壹系列(七):讨厌写文档,Swagger UI 了解一下?

    这些都还好,之前还有直接丢个 .doc 文档过来的。。。。 以前我总吐槽后端太懒,文档都不愿更新,直到自己写后端时,嗯,真香。。。于是,为了不耽误摸鱼时间,寻找一个趁手的文档工具,就提上日程了。...: 在 Swagger 中登录 接下来,我们测试一下注册接口的请求,先编辑参数,然后点击 Execute: 然后看一下返回参数: 看到返回的是 401 未登录。...示例参数 前面登录的时候,需要手动输入用户名、密码,那么有没有可能,事先写好,这样前端来看文档的时候,直接用默认账号登录就行了呢?...,还能看到 DTO 详情: 再点击 try it out 按钮的时候,就会自动使用默认参数了: 总结 本篇介绍了如何使用 Swagger 自动生成可互动的文档。...可以看到,我们只需在写代码的时候,加一些装饰器,并配置一些属性,就可以在 Swagger UI 中生成文档,并且这个文档是根据代码,实时更新的。

    5.3K10

    使用Swagger生成ASP.NET Web API的文档

    在本文中,我将介绍一些可以为ASP.NET Web API生成文档的方法。...除非你从未生成过Web API网站,否则你将会意识到,默认模板已经包含了为你可能实现的API 生成文档的功能,其中的一个示例位于authme.ws。...入门 关于如何使用Swagger为ASP.NET Web API生成文档已经写了不止两篇文章(还有一个叫做Swashbuckle的NuGet包,你可以很容易地集成它),但是我需要一些动态的东西 - 事实上...,我需要 生成表示我们提升到生产(即时点)的静态文档,因为它需要提供给审计。...幸运的是,有一个很赞的工具集Swagger,称为Swagger codegen,它生成客户端代码来使用API,对于我来说 - 生成静态HTML的能力。

    3.9K00

    接口文档:第二章:使用Swagger接口的文档在线自动生成

    上一章:商城接口文档:第一章:简洁版接口文档。花了二天搞了一个比较简洁的接口文档,浪费时间不说,写的也不太好,不满意。这一章使用Swagger接口的文档在线自动生成省下不少时间,而且很规范。...(这些基本信息会展现在文档页面中) * 访问地址:http://项目实际地址/swagger-ui.html * @return */ private ApiInfo...之后,apiInfo() 用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。...:信息,例如"请求参数没填好"     l   response:抛出异常的类    @ApiModel:描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候...还有一个需要注意的地方: Conntroller中定义的方法必须在@RequestMapper中显示的指定RequestMethod类型,否则SawggerUi会默认为全类型皆可访问, API列表中会生成多条项目

    1.2K20

    接口文档:第二章:使用Swagger接口的文档在线自动生成

    上一章:商城接口文档:第一章:简洁版接口文档。花了二天搞了一个比较简洁的接口文档,浪费时间不说,写的也不太好,不满意。这一章使用Swagger接口的文档在线自动生成省下不少时间,而且很规范。..."; /** * 设置用户配置的参数 */ @Override public void addConfigurationProperties(Properties...IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); //根据参数和备注信息判断是否添加备注信息...) { //文档注释开始 field.addJavaDocLine("/**"); //获取数据库字段的备注信息 String[] remarkLines...配置类 在Application.java同级创建Swagger2的配置类Swagger2 package com.swaggerTest; 更多内容请见原文,原文转载自:https://blog.csdn.net

    49610

    NestJS 7.x 折腾记: (4) Swagger接入及相关用法

    yarn add @nestjs/swagger swagger-ui-express 配置 抽离的环境变量(dev.local.env) # ------- Node服务相关 ------------...Api文档访问路径 SWAGGER_SETUP_PATH=api-docs # 标题及描述 SWAGGER_UI_TITLE=氚云3.0 BFF文档 SWAGGER_UI_TITLE_DESC=一点寒芒先到..., // swagger api 版本,自定义的 setupUrl: process.env.SWAGGER_SETUP_PATH, // UI文档路径 prefix: process.env.SWAGGER_ENDPOINT_PREFIX..., // 接口聚合前缀,在nest用全局prefix,但是丢给swagger定义也不冲突 }), ); 代码入口(main.ts) 熟悉的味道,还是把一些配置抽里成环境变量, 外部维护,通过注册中心使用...: boolean; // 开启这个,只要是import的都会追加的索引的路由 // 操作id,可以通过这个工厂函数来改变id的定义(接口请求生成) // 默认走的是@default

    2K10

    Swagger生成了几百兆的文档,该转移阵地了?

    项目写的太傻,庞大到生成了几百兆的Swagger文档。 通常,有个几兆就到了忍受极限了,这直接爆出几百兆。 问题源于这么一篇文章:小技巧:SpringBoot项目如何让前端开发提高效率?。...其中提到使用swagger可以让前端、后端、QA、产品互动起来,很多研发已经用了。但有些项目生成的文章忒TM大了(抱歉我控制不住),在让这些项目愉快的go die之前,还是得想办法处理呀。...看一下你的Controller里写的是不是 @RequestMapping 这个注解将会生成7条api信息 GET、HEAD、POST、PUT、DELETE、OPTIONS、PATCH ?...如果你能够确定调用方法,比如GET,请将注解改成 @GetMapping 不要有循环引用 返回的实体,还有请求的参数,不要循环引用。请干掉这些代码,不要邋遢,设计一点干净的api。...结尾 转到线下虽然解决了因为api过大造成的服务不稳定,但api的更新同步会是另外一个问题。 不管采用何种方式,合理简洁的api设计是首要的。调用方法固定,不循环引用,最重要的,记得分模块哦。

    79530

    Nest集成Swagger并部署至YAPI

    集成Swagger 首先,我们通过yarn安装三个依赖包,如下所示: yarn add @nestjs/swagger swagger-ui-express fastify-swagger 安装完成后...,我们打开项目的入口文件main.ts添加如下所示的代码: import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger"; async...config); SwaggerModule.setup("api", app, document); } 接下来,我们启动项目,在浏览器访问http://127.0.0.1:3000/api,显示的界面如下所示...: default选项列出了我们项目中的所有接口 image-20220317211550995 通过注解编写接口文档 在@nestjs/swagger库中,它提供了丰富的依赖供我们使用, 为我们生成友好的接口文档...@ApiOperation注解,用于对controller中的具体接口进行描述。 @ApiProperty注解,用于对dto层的参数进行描述。

    2.1K40

    使用Swagger2作为文档来描述你的接口信息

    接口文档在前后分离的项目中是必不可少的一部分,文档的编写一直以来都是一件头疼的事情,写程序不写注释、不写文档这几乎是程序员的通病,Swagger2的产生给广大的程序员们带来了曙光,只需要在接口类或者接口的方法上添加注解配置...ApiBoot Swagger提供了一系列的默认配置,比如:文档标题、文档描述、文档版本号等,如果需要修改文档的默认配置,只需要在application.yml文件内对应配置参数即可实现自定义,告别了繁琐的代码配置...可配置参数一览 ApiBoot Swagger之所以可以只需要一个注解就可以实现Swagger2的集成,其中难免有很多的配置参数在做支持,了解每一个配置参数的作用,我们才能进行心应手的自定义调整。...参数名 默认值 描述 api.boot.swagger.enable true 是否启用文档 api.boot.swagger.title ApiBoot快速集成Swagger文档 文档标题 api.boot.swagger.description...- 文档描述 api.boot.swagger.base-package SpringBoot默认package,详见AutoConfigurationPackages 生成文档的基础package

    61420

    使用 Swagger 的扩展组件Plugin 机制自定义API文档的生成

    pringfox-swagger2依然是依赖OSA规范文档,也就是一个描述API的json文件,而这个组件的功能就是帮助我们自动生成这个json文件,我们会用到的另外一个组件springfox-swagger-ui...代码示例: /** * 针对传值的参数自定义注解 * @author zhenghui * @date 2020年9月13日13:25:18 * @desc 读取自定义的属性并动态生成model...中添加我们新生成的Class context.parameterBuilder() //修改model参数的ModelRef为我们动态生成的class...code:数字,例如400 message:信息,例如”请求参数没填好” response:抛出异常的类 @ApiResponses(value = { @ApiResponse...描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候) @ApiModel(value

    2K60

    NestJS 7.x 折腾记: (2) 环境变量及配置维护

    其他不多说,往下可以看看我的配置分离思路~~ 实战 安装 @nestjs/config : 基于dotenv 封装的Nest配置中心 joi : 一个很灵活的schema校验工具 @types/hapi...SWAGGER_UI_TITLE: Joi.string().default('Swagger文档标题'), SWAGGER_UI_TITLE_DESC: Joi.string...匹配数组有效值,不匹配默认用默认值~ 若是环境变量使用异常,或者转换异常就会抛出类似的错误 image.png ConfigModule 之 load 这个可以用来加载组合的配置函数, 比如你一些配置分散在多个..., ApiPrefix: process.env.SWAGGER_ENDPOINT_PREFIX, }; /** * 打印相关的帮助信息到终端 * @param params */ export...目录路径 * @param {string} options.prefix 给每一个匹配项增加前缀文本 * @return {string[]} 不传参数默认返回/config/env下所有文件拼接的数组

    4.6K10
    领券