百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

一、Swagger介绍与使用 一、swagger介绍与使用手册

yuyutoo 2024-10-12 01:49 4 浏览 0 评论

一、简介

Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。

Swagger定义了一套接口规范,通过这套规范,你只需要按照它的规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等。

官网

https://swagger.io/

概述

我将通过以下几点来介绍Swagger这个强大的工具:

  • 注解说明
  • 环境集成
  • Spring Boot 整合Swagger3
  • Spring Boot整合Knife4j
  • 功能介绍

二、注解说明

  • @Api()用于类;
    表示标识这个类是swagger的资源
  • @ApiOperation()用于方法;
    表示一个http请求的操作
  • @ApiParam()用于方法,参数,字段说明;
    表示对参数的添加元数据(说明或是否必填等)
  • @ApiModel()用于类
    表示对类进行说明,用于参数用实体类接收
  • @ApiModelProperty()用于方法,字段
    表示对model属性的说明或者数据操作更改
  • @ApiIgnore()用于类,方法,方法参数
    表示这个方法或者类被忽略
  • @ApiImplicitParam() 用于方法
    表示单独的请求参数
  • @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam

三、注解使用

@Api()
用于类;表示标识这个类是swagger的资源
tags–表示说明
value–也是说明,可以使用tags替代
但是tags如果有多个值,会生成多个list

@Api(value="用户controller",tags={"用户操作接口"})@RestControllerpublic class UserController {}

效果如下图

@ApiOperation()
用于方法;表示一个http请求的操作
value用于方法描述
notes用于提示内容
tags可以重新分组(视情况而用)


@ApiParam()
用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)
name–参数名
value–参数说明
required–是否必填

@Api(value="用户controller",tags={"用户操作接口"})
@RestController
public class UserController {     
  @ApiOperation(value="获取用户信息",tags={"获取用户信息copy"},notes="注意问题点")     
  @GetMapping("/getUserInfo")     
  public User getUserInfo(@ApiParam(name="id",value="用户id",required=true) Long id,@ApiParam(name="username",value="用户名") String username) {     
    // userService可忽略,是业务逻辑      
    User user = userService.getUserInfo();      
    return user; 
  }
}

效果如下图

@ApiModel()
用于类,表示对类进行说明,用于参数用实体类接收
value–表示对象名
description–描述都可省略


@ApiModelProperty()
用于方法,字段; 表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏

@ApiModel(value="user对象",description="用户对象user")
public class User implements Serializable{    
  private static final long serialVersionUID = 1L;     

	@ApiModelProperty(value="用户名",name="username",example="xingguo")     
	private String username;     

	@ApiModelProperty(value="状态",name="state",required=true)      
	private Integer state;  

	@ApiModelProperty(value="id数组",hidden=true)      
	private String[] ids; 
@ApiOperation("更改用户信息")  
@PostMapping("/updateUserInfo")  
public int updateUserInfo(@RequestBody @ApiParam(name="用户对象",value="传入json格式",required=true) User user){     
  int num = userService.updateUserInfo(user);     
  return num;  
}

效果如下图

@ApiIgnore()
用于类或者方法上,可以不被swagger显示在页面上
比较简单, 这里不做举例


@ApiImplicitParam()
用于方法
表示单独的请求参数


@ApiImplicitParams()
用于方法,包含多个 @ApiImplicitParam
name–参数ming
value–参数说明
dataType–数据类型
paramType–参数类型
example–举例说明

@ApiOperation("查询测试")  
@GetMapping("select")  
//@ApiImplicitParam(name="name",value="用户名",dataType="String", paramType = "query")  
@ApiImplicitParams({  
  @ApiImplicitParam(name="name",value="用户名",dataType="string", paramType = "query",example="xingguo"),  
	@ApiImplicitParam(name="id",value="用户id",dataType="long", paramType = "query")
})  
public void select(){  

}

总结:到这里Swagger初步使用就介绍完了,但是原生页面看上去有点丑陋,后续会介绍Spring Boot整合Knife4j优美的界面。

相关推荐

如何在HTML中使用JavaScript:从基础到高级的全面指南!

“这里是云端源想IT,帮你...

推荐9个Github上热门的CSS开源框架

大家好,我是Echa。...

前端基础知识之“CSS是什么?”_前端css js

...

硬核!知网首篇被引过万的论文讲了啥?作者什么来头?

整理|袁小华近日,知网首篇被引量破万的中文论文及其作者备受关注。知网中心网站数据显示,截至2021年7月23日,由华南师范大学教授温忠麟等人发表在《心理学报》2004年05期上的学术论文“中介效应检验...

为什么我推荐使用JSX开发Vue3_为什么用vue不用jquery

在很长的一段时间中,Vue官方都以简单上手作为其推广的重点。这确实给Vue带来了非常大的用户量,尤其是最追求需求开发效率,往往不那么在意工程代码质量的国内中小企业中,Vue占据的份额极速增长...

【干货】一文详解html和css,前端开发需要哪些技术?
【干货】一文详解html和css,前端开发需要哪些技术?

网站开发简介...

2025-02-20 18:34 yuyutoo

分享几个css实用技巧_cssli

本篇将介绍几个css小技巧,目录如下:自定义引用标签的符号重置所有标签样式...

如何在浏览器中运行 .NET_怎么用浏览器运行代码

概述:...

前端-干货分享:更牛逼的CSS管理方法-层(CSS Layers)

使用CSS最困难的部分之一是处理CSS的权重值,它可以决定到底哪条规则会最终被应用,尤其是如果你想在Bootstrap这样的框架中覆盖其已有样式,更加显得麻烦。不过随着CSS层的引入,这一...

HTML 基础标签库_html标签基本结构
HTML 基础标签库_html标签基本结构

HTML标题HTML标题(Heading)是通过-...

2025-02-20 18:34 yuyutoo

前端css面试20道常见考题_高级前端css面试题

1.请解释一下CSS3的flexbox(弹性盒布局模型),以及适用场景?display:flex;在父元素设置,子元素受弹性盒影响,默认排成一行,如果超出一行,按比例压缩flex:1;子元素设置...

vue引入外部js文件并使用_vue3 引入外部js

要在Vue中引入外部的JavaScript文件,可以使用以下几种方法:1.使用``标签引入外部的JavaScript文件。在Vue的HTML模板中,可以直接使用``标签来引入外部的JavaScrip...

网页设计得懂css的规范_html+css网页设计

在初级的前端工作人员,刚入职的时候,可能在学习前端技术,写代码不是否那么的规范,而在工作中,命名的规范的尤为重要,它直接与你的代码质量挂钩。网上也受很多,但比较杂乱,在加上每年的命名都会发生一变化。...

Google在Chrome中引入HTML 5.1标记

虽然负责制定Web标准的WorldWideWebConsortium(W3C)尚未宣布HTML5正式推荐规格,而Google已经迁移到了HTML5.1。即将发布的Chrome38将引入H...

HTML DOM 引用( ) 对象_html中如何引用js

引用对象引用对象定义了一个同内联元素的HTML引用。标签定义短的引用。元素经常在引用的内容周围添加引号。HTML文档中的每一个标签,都会创建一个引用对象。...

取消回复欢迎 发表评论: