nestjs中swagger的基本使用

安装

$ npm install --save @nestjs/swagger swagger-ui-express
//如果使用fastify,则必须安装fastify-swagger而不是swagger-ui-express:
$ npm install --save @nestjs/swagger fastify-swagger

朴素使用

main.ts

import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

async function bootstrap() {
const app = await NestFactory.create(AppModule); const config = new DocumentBuilder()
.setTitle('this is a title')
.setDescription('this is a description')
.setVersion('1.0')
.addTag('cat')
.addTag('dog')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document); await app.listen(3000);
}

重点:用ApiTags装饰每一个Controller,才能把它们按名字分类展示

import { ApiTags } from '@nestjs/swagger';

app.controller.ts

@ApiTags()
@Controller()
export class AppController { ... }

cat.controller.ts

@ApiTags('cat')
@Controller('cat')
export class CatController { ... }

dog.controller.ts

@ApiTags('dog')
@Controller('dog')
export class DogController { ... }

如上便得到如下效果:

通过装饰器对接口更详细地说明

import { Controller, Get, Param } from '@nestjs/common';
import { ApiTags, ApiParam } from '@nestjs/swagger'; @ApiTags('dog')
@Controller('dog')
export class DogController {
@Get('/onedog/:name')
// 通过ApiParam装饰器,来描述接口需要哪些参数
@ApiParam({ name: 'name', type: String, description: '姓名' })
@ApiParam({ name: 'gender', type: String, description: '性别' })
aGetRequest(
@Param('name') name: string,
@Param('gender') gender: string
): string {
return `a ${gender} named ${name} has lunched a get request`
}
}

如上便得到如下效果:



除了ApiParam装饰器外还有很多别的装饰器可用,可自行百度,用法大同小异

nestjs中swagger的基本使用的更多相关文章

  1. 在NestJS 中添加对Stripe 的WebHook 验证

    在NestJS 中添加对Stripe 的WebHook 验证 背景介绍 Nest 是一个用于构建高效,可扩展的NodeJS 服务器端应用程序的框架.它使用渐进式JavaScript, 内置并完全支持T ...

  2. WebApi中Swagger的使用(超级简单)

    Swagger解释 Swagger是一种Rest API的简单但强大的表示方式,她是标准的与语言无关,这种表示方式不但人可读,而且机器可读. 可以作为Rest API的交互式文档,也可以作为Rest ...

  3. Asp.Net MVC Web API 中Swagger教程,使用Swagger创建Web API帮助文件

    什么是Swagger? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法 ...

  4. 如何让接口文档自动生成,SpringBoot中Swagger的使用

    目录 一.在SpringBoot项目中配置Swagger2 1.pom.xml中对Swagger2的依赖 2.编写配置类启用Swagger 3.配置实体类的文档 4.配置接口的文档 5.访问文档 二. ...

  5. 【swagger】C# 中 swagger 的使用及避坑

    @ 目录 1 安装 2 修改名称和版本号 3 显示说明 4 显示控制器注释及汉化 5 路由相同,查询参数不同的方法 6 忽略 Model 中的某些字段 7 传递 header 8 出错时的 HTTP ...

  6. Core3.0中Swagger使用JWT

    前言 学习ASP.NETCore,原链接 https://www.cnblogs.com/laozhang-is-phi/p/9511869.html 原教程是Core2.2,后期也升级到了Core3 ...

  7. asp .net core中swagger的简单使用

    相信swagger大家不太陌生,简单来说就是把web api接口以ui的形式呈现到页面上,供方便调用和展示.这边文章就带大家初步简单使用swagger. (1)首先需要安装包:Swashbuckle. ...

  8. springboot项目中swagger配置

    1.导入依赖 查看代码 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId> ...

  9. nestjs中typeorm进行事物操作

    https://typeorm.io/#/transactions 两种方法

  10. .net中swagger忽略某些字段

    需要忽略的字段上用特性 [System.Text.Json.Serialization.JsonIgnore] 例如:

随机推荐

  1. Windows QT程序配置删除网卡IP

    1.Windows下可在CMD控制终端使用Dos命令对指定网卡进行IP配置,需要使用管理员权限打开CMD终端 往网卡添加IP主要有以下两种方法: 方法1: netsh interface ip add ...

  2. TCP/IP协议(3): Wi-Fi(IEEE 802.11) 协议 —— 构成无线局域网的基本协议

    TCP/IP协议(3): Wi-Fi(IEEE 802.11) 协议 -- 构成无线局域网的基本协议 关于 Wi-Fi(IEEE 802.11) 协议 关于 IEEE 802.11 IEEE 802. ...

  3. ABAP 辨析CO|CN|CA|NA|CS|NS|CP|NP

    1.文档说明 本篇文档将通过举例,解析字符的比较运算符之间的用法和区别,涉及到的操作符:CO|CN|CA|NA|CS|NS|CP|NP 2.用法和区别 用法总览 以下举例,几乎都使用一个字符变量和一个 ...

  4. 解决.Net Core3.0 修改cshtml代码之后必须重新生成才可以看到效果

    1.安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation包 2.在Startup中ConfigureServices方法里面加入services.Ad ...

  5. 在 WXML 中使用 JS 代码

    {{}} 里面可以写任何的 JS 表达式,(一定是表达式,例如定义函数等都不属于表达式).例如,下面是在 wxml 中使用 JS 表达式: <view class="price tex ...

  6. ElasticSearch 实现分词全文检索 - 概述

    需求 做一个类似百度的全文搜索功能 所用的技术如下: ElasticSearch Kibana 管理界面 IK Analysis 分词器 SpringBoot ElasticSearch 简介 ES ...

  7. java学习日记20230302-字符

    JAVA字符 char c1 = 97 System.out.println(c1)// a 会输出97代表的字符(字符编码) 字符类型细节: 字符常量用单引号 java中允许使用\转义字符代表一个字 ...

  8. Vulnhub:vulnuni1.0.1靶机

    kali:192.168.111.111 靶机:192.168.111.192 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --script=http-enum 192.168. ...

  9. K8s集群调度

    k8s 调度器 Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上.听起来非常简单,但有很多要考虑的问题: 公平:如何保证每个节点都能被分配资源 ...

  10. C++程序设计实验四 继承

    程序源码: #include <iostream> #include <typeinfo> // definitation of Graph class Graph { pub ...