全面介绍Swagger接口文档工具

一、Swagger是什么?

Swagger是一套开源的API文档工具,它能够为RESTful Services自动生成API文档,还能提供在线API测试功能,并且生成客户端的API SDK。Swagger最初是由Tony Tam在2011年创建的。从那以后,Swagger已经发展成为一个极受欢迎的API文档工具。
Swagger 在其生命周期内经过了许多变化,从Swagger 1.2 到 Swagger 2.0,直到成为 OpenAPI ,而这个变化也可以解释为许多人按照之前的 Apache 2.0 许可证核心创建了该项目。

二、Swagger的核心维度

在 Swagger 之中,有三个核心维度:

Swagger Spec:该规范定义了使用 JSON 或 YAML 的 APIs 描述文件的结构。它支持 RESTful APIs 的描述,使得 RESTful APIs 的定义和使用更加简单和规范。

Swagger Editor:Swagger Editor 是一个用于编辑 Swagger API 设计的工具。通过简单而强大的编辑器,它可以帮助用户轻松创建,编辑和维护 Swagger API 规范。

Swagger UI:Swagger UI 允许用户通过浏览器来交互式的查看和试验 API 文档。 用户可以通过一个界面来测试 API 的各个端点,而不需要终端或第三方应用程序支持。

三、如何使用Swagger?

下面我们将介绍如何在Spring Boot应用程序中使用Swagger。

1. 添加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>

2. 启用Swagger

启用Swagger 需要添加@Configuration注解,以便将Swagger添加为一个 Spring Bean。这可以通过在应用程序中创建 @Bean 声明方式来完成。

package com.example.demo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig extends WebMvcConfigurerAdapter {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

3. 使用Swagger来注释APIs

上面的配置让你能够查看你 Spring Boot 项目中的所有 API 列表,但是如果你想为 API 添加更多的描述、tags 和请求示例,那就需要添加更多的注释了。简单地把Swagger扫描过的范围配置在所有@RequestMapping注解的方法上,并在注解中描述每个特定的API。

@RestController
@RequestMapping("/user")
public class UserController {

    @ApiOperation(value = "获取用户详细信息", notes = "根据url的id来获取用户详细信息")
    @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long", paramType = "path")
    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public User getUserById(@PathVariable(value = "id") Long id) {
        // ...
    }

    @ApiOperation(value = "添加用户", notes = "根据User对象创建用户")
    @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addUser(@RequestBody User user) {
        // ...
    }
}

四、Swagger界面展示与说明

Swagger UI 是 Swagger 最突出的特点之一。它提供了一个易于使用 Web 接口来查看、测试和文档化 API。Swagger UI 是Swagger规范的 HTML/CSS/JavaScript 体现形式。因此,您可以将这个界面引入到您的现有项目中,以测试您的 API。

最常见的 Swagger UI 是内置在 Swagger-editor 工具中提供的 UI。该 UI 允许您可视化定义您的 API 并文档化您的 API 存储库。

通过在 Web 浏览器中导航到 Swagger UI 项目并选择并输入一个 OpenAPI(以 Swagger 2.0兼容体验) 规范注册表,您可以将Swagger UI 与您的 API 对接,从而创造一个互动式的 API 文档和操作界面。

效果如图所示:

<img src="https://img-blog.csdn.net/20171025225006921?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3Vvb25nZW43MjUx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75"
  alt="SwaggerUI"
  title="SwaggerUI"
  style="display:block;margin:auto;width:80%;">

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/307542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-02 18:16
下一篇 2025-01-02 18:16

相关推荐

  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python应用程序的全面指南

    Python是一种功能强大而简单易学的编程语言,适用于多种应用场景。本篇文章将从多个方面介绍Python如何应用于开发应用程序。 一、Web应用程序 目前,基于Python的Web…

    编程 2025-04-29
  • 使用Spire.PDF进行PDF文档处理

    Spire.PDF是一款C#的PDF库,它可以帮助开发者快速、简便地处理PDF文档。本篇文章将会介绍Spire.PDF库的一些基本用法和常见功能。 一、PDF文档创建 创建PDF文…

    编程 2025-04-29
  • Python zscore函数全面解析

    本文将介绍什么是zscore函数,它在数据分析中的作用以及如何使用Python实现zscore函数,为读者提供全面的指导。 一、zscore函数的概念 zscore函数是一种用于标…

    编程 2025-04-29
  • 如何通过jstack工具列出假死的java进程

    假死的java进程是指在运行过程中出现了某些问题导致进程停止响应,此时无法通过正常的方式关闭或者重启该进程。在这种情况下,我们可以借助jstack工具来获取该进程的进程号和线程号,…

    编程 2025-04-29
  • 全面解读数据属性r/w

    数据属性r/w是指数据属性的可读/可写性,它在程序设计中扮演着非常重要的角色。下面我们从多个方面对数据属性r/w进行详细的阐述。 一、r/w的概念 数据属性r/w即指数据属性的可读…

    编程 2025-04-29
  • 注册表取证工具有哪些

    注册表取证是数字取证的重要分支,主要是获取计算机系统中的注册表信息,进而分析痕迹,获取重要证据。本文将以注册表取证工具为中心,从多个方面进行详细阐述。 一、注册表取证工具概述 注册…

    编程 2025-04-29
  • Python计算机程序代码全面介绍

    本文将从多个方面对Python计算机程序代码进行详细介绍,包括基础语法、数据类型、控制语句、函数、模块及面向对象编程等。 一、基础语法 Python是一种解释型、面向对象、动态数据…

    编程 2025-04-29
  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • Python爬虫文档报告

    本文将从多个方面介绍Python爬虫文档的相关内容,包括:爬虫基础知识、爬虫框架及常用库、爬虫实战等。 一、爬虫基础知识 1、爬虫的定义: 爬虫是一种自动化程序,通过模拟人的行为在…

    编程 2025-04-28

发表回复

登录后才能评论