不用在写这么多的接口文档-SpringBoot整合Swagger,解放你打接口文档的双手

本文主要是介绍不用在写这么多的接口文档-SpringBoot整合Swagger,解放你打接口文档的双手,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天学习了一下Swagger的继承文档功能

我们为什么要使用Swagger呢?

在前后端通过分离的方式开发项目时,我们作为后端程序员,需要给予前端各种各样的接口,但是前端是不懂得代码的,所以我们在进行接口开发之后,还需要为接口写入一个文档,单独为接口介绍,使得前端人员能够通过此介绍方式在前端页面能够调用我们后台的控制器,而有时候在开发时,因为某些因素的变化,我们就需要对接口进行改变,那时,我们又需要重新修改接口并且还要重写我们给与前端的接口介绍文档,这样就使得我们的开发变得十分的麻烦,因此,Swagger框架就为此功能而生成了。

在使用Swagger的之前,我们首先使用手写的接口介绍尝试一次

--------------------------------------------------------------------------

接口:用户登录

接口路径:localhost:9999/dologin

请求参数:userName,password

参数名称参数类型注释
userNameString用户名
passwordString密码

请求方式:post

返回的数据结构

1 或者 2

1表示登录成功在数据库中有数据

2表示登录失败在数据库中没有数据

参数说明:

参数名称参数类型注释
IntegerInteger返回1表示登录成功 2表示登录失败

接口:删除用户

接口路径:localhost:9999/removeUser

请求参数:id

参数名称参数类型注释
idInteger用户的id编号

请求方式:get

返回的数据结构:

Integer

1或者0

参数说明

返回参数名称参数类型注释
Integer数据Integer返回1表示删除成功

接口:查询学生

接口路径:localhost:9004/student

请求参数:无

请求方式:get

返回的数据结构:

[{"studentNo": 1,"studentName": "张三","studentAge": 18,"studentSex": "男"},{"studentNo": 2,"studentName": "小花","studentAge": 17,"studentSex": "女"},{"studentNo": 3,"studentName": "小鲸鱼","studentAge": 10,"studentSex": "女"},{"studentNo": 4,"studentName": "大鲨鱼","studentAge": 16,"studentSex": "男"},{"studentNo": 5,"studentName": "大脑虎","studentAge": 20,"studentSex": "男"}
]

参数说明

参数名称参数类型注释
studentNoInteger学生编号
studentNameString姓名
studentAgeString年龄
studentSexString性别

接口:返回一个map集合

接口路径:localhost:9004/map

请求参数:无

请求方式:get

返回的数据结构:

{
"其一":“劝君莫惜金缕衣,劝君须惜少年时。有花堪折直须折,莫待无花空折枝。”,
"金缕衣":“杜秋娘”,
"其二":"青天无云月如烛,露泣梨花白如玉。 子规一夜啼到明,美人独在空房宿。"
}

参数说明

返回参数名称参数类型注释
map的key值String返回map集合的key值
map的value值String返回map集合的value值

---------------------------------------------------------------------------

本次我写入了四个接口介绍 感觉十分的麻烦,并且在写的过程中也遇到过代码不小心错误的问题。而这些问题如果是放到上百个接口以上的项目时,就容易极大的增加我们的工作量,这时,Swagger的好处就体现出来了。

使用 Swagger 集成文档具有以下几个优势:

  • 功能丰富 :支持多种注解,自动生成接口文档界面,支持在界面测试API接口功能;
  • 及时更新 :开发过程中花一点写注释的时间,就可以及时的更新API文档,省心省力;
  • 整合简单 :通过添加pom依赖和简单配置,内嵌于应用中就可同时发布API接口文档界面,不需要部署独立服务。

使用Swagger:

1.添加他的相关依赖

WEB依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

swagger依赖,这里选择 2.9.2 版本。

<!-- swagger -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>

添加配置类

添加一个swagger 配置类,在工程下新建 config 包并添加一个 SwaggerConfig 配置类。

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;@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket createRestApi(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build();}private ApiInfo apiInfo(){return new ApiInfoBuilder().title("Kitty API Doc").description("This is a restful api document of Kitty.").version("1.0").build();}}

在添加完配置文件后,即代表Swagger已经配置成功了,我们接下来就

添加一个控制器 测试一下Swagger

添加一个控制器,在工程下新建 controller包并添加一个 HelloController控制器。

HelloController.java

package com.louis.springboot.demo.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;/* 类注解 */
@Api(value = "desc of class")
@RestController
public class HelloController {/* 方法注解 */@ApiOperation(value = "desc of method", notes = "")@GetMapping(value="/hello")public Object hello( /* 参数注解 */ @ApiParam(value = "desc of param" , required=true ) @RequestParam String name) {return "Hello " + name + "!";}
}

添加完成后,我们启动一下项目

启动完成后

我们在浏览器中收入我们的http://localhost:8080/swagger-ui.html#/
加入swagger-ui中 可以看到我们创建的控制器就在此页面呈现了出来

在这里插入图片描述

这样,我们创建的控制器的文档就这样显示出来了,并且我们可以直接在该页面使用我们的控制器进行各种测试。十分方便。

这篇关于不用在写这么多的接口文档-SpringBoot整合Swagger,解放你打接口文档的双手的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779310

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件