当前位置: 首页 > news >正文

中国工程建设领域网站竞价托管服务公司

中国工程建设领域网站,竞价托管服务公司,网页设计如何收费,网站logo怎么换什么是swagger Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(<https://swagger.io/>)。 它的主要作用是&#xff1a; 1. 使得前后端分离开发更加方便&#xff0c;有利于团队协作 2. 接口的文档在线自动生成&#xf…

什么是swagger

        Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(<https://swagger.io/>)。 它的主要作用是:

        1. 使得前后端分离开发更加方便,有利于团队协作

        2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担

        3. 功能测试 

安装配置

安装@nestjs/swagger,然后在main.ts进行引入配置

import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'const swaggerOptions = new DocumentBuilder().setTitle('Nest-Admin App').setDescription('Nest-Admin App 接口文档').setVersion('2.0.0').addBearerAuth().build()const document = SwaggerModule.createDocument(app, swaggerOptions)// 项目依赖当前文档功能,最好不要改变当前地址// 生产环境使用 nginx 可以将当前文档地址 屏蔽外部访问SwaggerModule.setup("api/docs", app, document, {swaggerOptions: {persistAuthorization: true,},customSiteTitle: 'Nest-Admin API Docs',})

启动项目访问http://localhost:3000/api/docs就可以看到 swagger 界面了。

接口配置

我们看到上面所有接口都是混在一起、没有分类的,并且也没有请求和返回参数格式。所以我们需要对其再进行一些配置,这里就以/login接口为例。

考虑到注册登录都是用户相关的功能,我们使用nest g resource users新建一个user模块。在user模块下创建一个base.controller.ts,引入ApiOperation,ApiTags:

import { Body, Controller, Post, Req } from '@nestjs/common'
import { ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger'import { UserEntity } from './entities/user.entity'
import { UserService } from './user.service'import { LoginUser } from './dto/login-user.dto'
import { CreateUserDto } from './dto/create-user.dto'
import { CreateTokenDto } from './dto/create-token.dto'@ApiTags('登录注册')
@Controller()
export class BaseController {constructor(private readonly userService: UserService) {}@Post('register')@ApiOperation({ summary: '用户注册' })async create(@Body() user: CreateUserDto): Promise<RegisterResponse> {return await this.userService.create(user)}@Post('login')@ApiOperation({ summary: '登录' })async login(@Body() dto: LoginUser): Promise<LoginResponse> {return await this.userService.login(dto.account, dto.password)}@Post('/update/token')@ApiOperation({ summary: '刷新token' })async updateToken(@Req() req:any): Promise<UpdateTokenResponse> {return await this.userService.updateToken(req.user.id)}
}

刷新文档页面就可以看到我们加的分组和接口描述信息了:

接下来我们再配置一下入参信息,入参信息需要在login-user.dto.ts引入ApiProperty(定义 post 请求参数)进行配置:

import { ApiProperty } from '@nestjs/swagger'export class LoginUser {@ApiProperty({ description: '账号',example: 'admin' })readonly account: string@ApiProperty({ description: '密码',example: 'admin' })readonly password: string
}

然后再看文档页面:

同时可以点击 try it out 按钮进行接口的调用

有了请求参数格式,还需要提供返回数据格式给前端,返回参数的定义可以用ApiOkResponse进行配置,如

 @ApiOkResponse({ description: '登录成功返回', type: LoginResponse })

其中LoginResponse需要我们根据具体格式自定义,这里新建一个文件定义auth模块的接口返回格式(vo/auth.vo.ts)

import { ApiProperty } from '@nestjs/swagger';export class LoginResponse {@ApiProperty({ example: 200 })code: number;@ApiProperty({ example: 'eyJhbGciOiJ...' })data: string;@ApiProperty({ example: '请求成功' })msg: string;
}

然后在base.controller.ts进行响应数据的配置

...
import { ApiOperation, ApiTags, ApiOkResponse } from '@nestjs/swagger';
import { LoginResponse } from './vo/auth.vo';
import { LoginUser } from './dto/login-user.dto'@ApiTags('登录验证模块')
@Controller()
export class BaseController {constructor(private readonly userService: UserService) {}@ApiOperation({summary: '登录接口', // 接口描述信息})@ApiOkResponse({ description: '登录成功返回', type: LoginResponse })@Post('login')login(@Body() loginUser: LoginUser) {return this.userService.login(loginUser);}}

刷新swagger,就会看到我们定义的响应数据了

http://www.yayakq.cn/news/977295/

相关文章:

  • 传媒公司网站制作做一个网上商城网站建设费用多少钱
  • qq刷赞网站推广全网可以建设网站
  • 微网站 方案怎么设置网站关键词
  • 做视频有赚钱的网站有哪些网站相似度检测 站长
  • 网投网站建设响应式网站的字体设置
  • 网站关键词排名服务系统维护一般要多久
  • 网站公司做文员网络营销案例文章
  • 广州仿网站重庆网站建设及优化公司
  • 建设工程专注在哪个网站网站建设的目的与意义是什么
  • 常州网站推广多少钱游戏道具网站开发
  • 网站 正在建设中电商平台开发需要多少钱
  • 做化妆品销售网站如何免费网站建设 百度收录
  • 做的网站没法本地上传图片石家庄网站排名软件
  • 网站运营写营销展示产品的网站
  • 阿里巴巴网站备案号社区网站建设费用
  • 面包网站seo类似于凡科的网站
  • 免费网站链接网站为什么要服务器
  • 湖南网站建设磐石网络答疑怎么打广告吸引客户
  • iis发布网站无法访问深圳外贸网站建设公司价格
  • 深圳龙华医院网站建设松原手机网站开发公司
  • 苏州建站费用汕头制作企业网站
  • 西安的电子商城网站建设市场监督管理局投诉举报管理办法
  • 饰品行业网站开发wordpress 手机版菜单
  • 网站 网页数量山东各地网站备案
  • 定制网站开发接活罗湖做网站的公司哪家好
  • 数字营销1+x网站网站开发服务器知识
  • 怎么做网站维护h5小游戏制作
  • 天水市建设路第二小学网站在哪个网站可以自助建站
  • 盘锦网站建设策划近五年关于网站建设的参考文献
  • 单页产品网站源码带后台建设网站赚钱猛兽领主