swagger2 介绍+注解说明

news2025/1/22 9:16:01

简介:

       为什么要用swagger,我的理由是方便,作为后端开放人员,最烦的事就是自己写接口文档和前端交互是不是需要各种参数很繁琐,项目集成swagger后就能自动生成接口文档,做到前端、后端联调接口文档的及时性和便利性。

优势:

1.支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档了,对程序员来说非常方便。
2.提供 Web 页面在线测试 API:有文档还不够,Swagger 生成的文档还支持在线测试。参数和格式都定好了,直接在界面上输入参数对应的值即可在线测试接口。


示例如图下:

50586476138c485ba3aed5cd2058757a.png

 d9d38f5d50d644f686231d06ffb1e209.png

 

swagger基本注解使用 

 

注解及其使用如下(对应注解):

注解作用使用位置
@Api表示对类的说明常用参数类上面
@ApiOperation说明方法的用途、作用方法上面
@ApiModel表示一个返回响应数据的信息响应类
@ApiModelProperty描述响应类的属性属性
@ApiIgnore忽略某个字段使之不显示在文档中属性

 

一、 @Api:用在请求的类上,表示对类的说明常用参数

参数描述
tags说明该类的作用,非空时将覆盖value的值
value描述类的作用
description对api资源的描述,在1.5版本后不再支持
basePath基本路径可以不配置,在1.5版本后不再支持
position如果配置多个Api 想改变显示的顺序位置,在1.5版本后不再支持
produces设置MIME类型列表(output),例:“application/json, application/xml”,默认为空
authorizations获取授权列表(安全声明),如果未设置,则返回一个空的授权值
hidden默认为false, 配置为true 将在文档中隐藏

示例:

@CrossOrigin
@RestController
@RequestMapping("/customer/information")
@Api(tags = "定制橱柜~客户信息")
public class CrmCustomersController{}

 接口文档示例:e55989b14cd9485a9148c292e1143b63.png

 

二、@ApiOperation:用在请求的方法上,说明方法的用途、作用 

参数描述
value说明方法的用途、作用
notes方法的备注说明
tags操作标签,非空时将覆盖value的值
response响应类型(即返回对象)
responseContainer声明包装的响应容器(返回对象类型)。有效值为 “List”, “Set” or “Map”。
responseReference指定对响应类型的引用。将覆盖任何指定的response()类
httpMethod指定HTTP方法,“GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH”
responseHeaders响应头列表
code响应的HTTP状态代码。默认 200
hidden默认为false, 配置为true 将在文档中隐藏

示例:

    @ApiOperation(value = "供应商~导购(状态流转)")
    @RequestMapping(value = "queryStateExchange", method = RequestMethod.POST)
    public PmpResult queryStateExchange () int pageNum,String state){}

接口文档示例:

 

 

三、@ApiModelProperty:用在属性上,描述响应类的属性

参数描述
value此属性的简要说明。
name允许覆盖属性名称
allowableValues限制参数的可接受值。1.以逗号分隔的列表 2、范围值 3、设置最小值/最大值
access允许从API文档中过滤属性。
notes目前尚未使用。
dataType参数的数据类型。可以是类名或者参数名,会覆盖类的属性名称。
required参数是否必传,默认为false
position允许在类中对属性进行排序。默认为0
hidden允许在Swagger模型定义中隐藏该属性。
example属性的示例。
readOnly将属性设置为只读
reference指定对相应类型定义的引用,覆盖指定的任何参数值

示例:

44a84af469624659a6d977bc6ffac6a3.png

 接口文档示例:

7e74ebda524a46db889393764f65e42b.png

 

四、 @ApiIgnore 忽略某个属性,使之不显示在swagger文档中显示

未加注解前示例:

10a149eaf15343f9b0938449735ab8f3.png

 

加注解后示例:

    @ApiOperation(value = "客户列表")
    @RequestMapping(value = "customerlist", method = RequestMethod.GET)
    public PmpResult  queryCustomerList (@ApiIgnore @RequestParam(value="pageNum",defaultValue="1") int pageNum, @RequestParam(value="pageSize",defaultValue="10") int pageSize, String customersno, String customersname, String daogouid){}

 加注解后接口文档示例:

4a5af60437ff42d9a728dd54e01072fa.png

 

五、@ApiImplicitParams 用法

 示例:

    @ApiImplicitParams({ @ApiImplicitParam(value="客户编号(精确命中)",name="customersno",dataType="Stirng",paramType = "query"),
                         @ApiImplicitParam(value="类型(04:门 05:口)",name="state",dataType="Stirng",paramType = "query"),
                         @ApiImplicitParam(value="订单主表Uid",name="parentId",dataType="Stirng",paramType = "query")})
    @RequestMapping(value = "queryByDoorOrderlist", method = RequestMethod.POST)
    @ApiOperation(value = "基础项目~订单~木门")
    public PmpResult queryByDoorOrderlist(String customersno, String state,String parentId){}

 接口文档示例:  显示描述信息

5879272d5fb7491ba11bd8906618d9cd.png

 

以上就是常用的注解示例,如需要其他注解可自行尝试。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Eureka与Nacos的区别

Eureka 工作原理图 Nacos工作原理图 Eureka与Nacos相同点 都支持服务注册和服务拉取。 都支持服务提供者心跳方式做健康检测。 Eureka与Nacos区别 Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式 临时实例心跳…

理解Java的线程安全问题

目录 目录 举例:三个窗口卖票 运行结果:出现重票 如何解决? 方式一:同步代码块,第一个例子 运行结果: 改进: 运行结果: 方法一:同步代码块的第二个例子。把锁和ti…

使用opencv进行脸部识别

1.读取人脸部图片 引入需要的库,并读取人脸的图片 import cv2 import matplotlib.pyplot as plt import numpy as np# 定义t2s函数,方便查看是否对图片进行RGB通道转换 def t2s(img):return cv2.cvtColor(img, cv2.COLOR_BGR2RGB)# 读取图片 img cv2.…

10个PMP冷知识,项目经理看完都说长见识

早上好,我是老原。每次聊起考证啊,我内心总是充满遗憾——毕竟现在的市场情况,让很多项目经理对考证都不看好。但是啊,这群吹证书无用论的小友,总让我想起前几年吹学习无用论的时候,多么的异曲同工&#xf…

PageHelper分页规则

1.问题 1.1.PageHelper先开启分页&#xff0c;后对list数据操作 Overridepublic PageInfo<HdQueryVo> getRecordsByView(int pageNo, int pageSize) {PageHelper.startPage(pageNo,pageSize);List<HdQueryVo> hdQueryVosByView actionMapper.getActionByView();…

TP6(thinkphp6)队列与延时队列

安装 在此我就不再略过TP6的项目创建过程了&#xff0c;大致就是安装composer工具&#xff0c;安装成功以后&#xff0c;再使用composer去创建项目即可。 think-queue 安装 composer require topthink/think-queue 项目中添加驱动配置 我们需要在安装好的config下找到 queu…

SAP工作流任务

前言 灵活工作流沿用的传统工作流的活动节点&#xff0c;只是不再体现在流程图上&#xff0c;工作流的活动根据是否需要代理人可以分为两类&#xff0c;一类是自动后台处理的步骤&#xff0c;另外一类是需要代理人处理的步骤&#xff08;一般为决策节点&#xff09;&#xff0c…

线程通信例子

目录 线程通信的例子&#xff1a;使用两个线程打印1-100。线程1&#xff0c;线程2&#xff0c;交替打印 涉及的3个方法&#xff1a; 运行结果&#xff1a; 把锁改为其他对象 运行结果报错&#xff1a; 改进&#xff0c;把notify和wait的调用者改为obj sleep()和wait()的…

【数据结构】—— Java实现单链表

Java实现单链表一、一链表的概念及结构二、头节点与头指针的异同三、代码实现一、一链表的概念及结构 链表是一种物理存储结构上非连续存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。 注意&#xff1a; 从上图可以看出&#xff0c;链式结构在逻…

MobPush for SDK API

推送监听接口 (addPushReceiver) 描述&#xff1a;添加推送监听&#xff0c;可监听接收到的自定义消息(透传消息)、通知消息、通知栏点击事件、别名和标签变更操作。 /*** com.mob.pushsdk.MobPush.class* MobPush推送监听接口* param receiver 监听*/ public static void ad…

Databend 开源周报 #74

Databend 是一款强大的云数仓。专为弹性和高效设计&#xff0c;自由且开源。 即刻体验云服务&#xff1a;https://app.databend.com。 What’s New 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 Features & Improvements Meta watch client …

【Word2021交叉引用参考文献格式】

Word2021交叉引用参考文献格式1 格式分类2 格式设置方法2.1 引用单个参考文献2.2 引用连续两个参考文献2.3 引用连续三个及三个以上的参考文献1 格式分类 按照引用参考文献的数量&#xff0c;格式一般分为三种&#xff1a; 1、引用单个参考文献&#xff0c;样例&#xff1a;我…

Leetcode回溯法题解

第一题 17. 电话号码的字母组合 题目描述&#xff1a;给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按任意顺序返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例1&#xff1a;…

Linux yum 使用手册,以及内网源搭建

Linux yum 内网源搭建 序 在 Linux 中&#xff0c;我们经常安装各个开源网站编写的代码、软件&#xff0c;在安装的时候各个软件之间有各种依赖关系&#xff0c;还可能出现版本问题&#xff0c;比如 Centos7 支持的软件&#xff0c; Centos6 就未必支持。如果是 Java 开发应该…

ArcGIS基础实验操作100例--实验73创建闭合线内部缓冲区

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验73 创建闭合线内部缓冲区 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff0…

K8S ReplicaSet 原理 示例 HPA扩容

K8S ReplicaSet 基本使用 K8S ReplicaSet 对象的作用是在任意时间点保持一组稳定的副本Pod运行&#xff0c;因此&#xff0c;它通常用于保证指定数量的相同Pod的可用性。乍一看&#xff0c; ReplicaSet 对象的定义跟 Replication Controller 并没有什么区别&#xff0c;都是维…

AI检测人员工衣工服着装不规范识别系统 yolo

AI检测人员工衣工服着装不规范识别系统基于opencvyolo网络深度学习模型对现场画面中人员着装穿戴实时监测分析。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xff0c;用于实时进行目标检测。该算法将单个神经网络应用于完整的图像&#x…

Vivado综合属性之SRL_STYLE

本文介绍综合属性SRL_STYLE取register、srl、srl_reg、reg_srl、reg_srl_reg和block中的值时&#xff0c;对Schematic的影响。 SRL_STYLE用于指导Vivado将SRL&#xff08;移位寄存器&#xff09;映射为何种形式。 目录 默认值 测试代码 原理图 SRL_STYLE配置为register …

【JavaSE】String类

目录 前言&#xff1a; 1.1、了解字符串构造方法 1.2、求字符串长度&#xff08;xxx.length()&#xff09; 1.3、isEmpty()方法 1.4、String对象的比较 1.4.1、通过&#xff08;str1 str2&#xff09;来比较&#xff0c;这样比较的是两个引用当中的地址 1.4.2、 boolea…

【ONE·C++ || vector (一)】

总言 学习笔记&#xff0c;慢慢补充。 文章目录总言1、整体介绍&#xff1a;2、常用各种接口介绍2.1、vector的基本结构&#xff1a;构造、析构、赋值2.1.1、总体情况预览2.1.2、各项函数使用演示2.2、vector增删查改相关2.2.1、增删查改总览2.2.2、如何在vector中插入、删除、…