| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 前言技术swagger两种使用方法 -> 正文阅读 |
|
[Java知识库]前言技术swagger两种使用方法 |
一:swagger是什么?1、是一款让你更好的书写api文档规范且完整的框架。 1. 前后端分离的特点前后端分离是的前端与后端之间的职责更加明确 后台: 负责业务处理 前端: 负责显示逻辑 在这种情况下,前端和后端可以分别交付给专业的开发人员去做,所以是必须要定义前后端直接的对接 接口,否则各自为是则项目无法集成,这时就需要一个文档来定义统一的接口。 2. 在没有swagger之前
3. swagger的作用根据在代码中使用自定义的注解来生成接口文档,这个在前后端分离的项目中很重要。这样做的好处是 在开发接口时可以通过swagger将接口文档定义好,同时也方便以后的维护。 4. swagger的优点号称时最流行的API框架 接口文档在线生成,避免同步的麻烦 可以支持在线对接口执行测试 支持多语言 5. 集成swagger打开https://mvnrepository.com/ ,查找springbox,在pom.xml中导入如下图标出的依赖 导入依赖
编写sawgger的配置类 package com.zking.mini_program.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; //跟着spring一起启动 @Configuration //打开swagger功能 @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.zking.mini_program.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerDemo API DOC") .description("SwaggerDemo API DOC") .version("1.0") .termsOfServiceUrl("https://www.hmf.com") .build(); } } 开发一个controller用于测试 package com.zking.mini_program.controller; import com.zking.mini_program.pojo.User; import com.zking.mini_program.util.response.ResponseResult; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/hello") @Api(tags = "测试Swagger") @SuppressWarnings("all") public class HelloController { @ApiOperation(value = "欢迎信息") @GetMapping("/hello") @ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "名称", dataType = "string", paramType = "query", required = true), @ApiImplicitParam(name = "msg", value = "消息", dataType = "string", paramType = "query", required = true) }) public ResponseResult<?> hello(String name, String msg) { return ResponseResult.success(); } @PostMapping("/register") @ApiOperation("注册用户接口") @ApiResponses({ @ApiResponse(code = 10001, message = "Exception 01"), @ApiResponse(code = 10002, message = "Exception 02"), @ApiResponse(code = 10003, message = "Exception 03") }) public ResponseResult<?> register(@RequestBody User user) { return ResponseResult.success(); } @PutMapping("/edit") @ApiOperation("修改用户信息") public ResponseResult<?> edit(User user) { return ResponseResult.success(); } @DeleteMapping("/delete/{id}") @ApiOperation("删除用户") @ApiImplicitParam(name = "id", value = "用户ID", dataType = "string", paramType = "path", required = true) public ResponseResult<?> delete(@PathVariable("id") String id) { return ResponseResult.success(); } } 启动服务,验证集成效果服务启动后,访问:http://localhost:8080/swagger-ui.html 6. swagger常用注解?
|
注解 | 位置 | 作用 | 参数 |
@Api | 类 | 标识这个类是swagger的资 源 | tags:说明该类的作 用,参数是个数组,可 以填多个。 |
value="该参数没什么意 义,在UI界面上不显示,所 以不用配置" | |||
description = "用户基本信 息操作" | |||
@ApiOperation | 方法 | 表示一个http请求的操作 | value="方法的用途和作 用" |
notes="方法的注意事项和 备注" | |||
tags:说明该方法的作用, 参数是个数组,可以填多 个。 | |||
格式:tags={"作用1","作用 2"} | |||
@ApiParam | 方 法, 参数 | 对参数使用说明(如:说明 或是否必填等) | value="用户名" 描述参 数的意义 |
name="name" 参数的变量 名 | |||
required=true 参数是否必 选 | |||
@ApiModel | 类 | 表示对类进行说明,用于参 数用实体类接收,一般用在 DTO上 | description="描述实体 的作用" |
@ApiModelProperty | 方 法, 字段 | 表示对model属性的说明 | value="用户名" 描述参 数的意义 |
name="name" 参数的变量 名 | |||
required=true 参数是否必 选 | |||
@ApiIgnore | 类, 方 法, 参数 | 表示这个方法或者类被忽略 | 无 |
@ApiImplicitParams | 方法 | 包含多@ApiImplicitParam | |
@ApiImplicitParam | 方法 | 表示单独的请求参数 | name="参数名称" |
value="参数说明" | |||
dataType="数据类型" | |||
paramType="query" 表示 参数放在哪里 |
header 请求参数的获取:@RequestHeader
query 请求参数的获取:@RequestParam
path(用于restful接口) 请求参数的获取:@PathVariable
body(不常用)
form(不常用)
defaultValue="参数的默认值
" required="true" 表示参数是否必须传?
更全面的信息可以参考官方说明文档:
swagger-annotations 1.3.10 API
API 名称
[GET] http:
测试接口
Headers
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:48:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |