六、springboot整合swagger

六、springboot整合swagger

简介

swagger 提供最强大,最易用的工具,以充分利用OpenAPI规范。

官网 : https://swagger.io/

准备工作

  • pom.xml jar引入: <swagger.version>2.9.2</swagger.version>
     <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.version}</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger.version}</version>
        </dependency>

目的

之前使用swagger都是直接在类,方法,实体上写api引入的参数,这给人一种代码很不清爽的感觉,所以采用yaml文件编辑的模式,是代码看着更简单。

项目结构

  • 1.创建SwaggerConfig类
package com.honghh.bootfirst.config;

import io.swagger.annotations.ApiOperation;
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;

/**
 * ClassName: SwaggerConfig
 * Description:
 *
 * @author honghh
 * @date 2019/02/20 14:28
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig{

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //加了ApiOperation注解的类,生成接口文档
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                //包下的类,生成接口文档
                //.apis(RequestHandlerSelectors.basePackage("com.honghh.bootfirst.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("boot-demo")
                .description("boot-demo文档")
                .termsOfServiceUrl("http://www.boot-demo.cn")
                .version("1.0.0")
                .build();
    }

}
#必要字段!Swagger规范版本,必须填2.0,否则该YAML将不能用于Swagger其他组件
swagger: ‘2.0‘
#必要字段!描述API接口信息的元数据
info:
  #接口文档的描述
  description: swagger说明文档,让一切都变得如此简单。
  #版本号
  version: 1.0.0
  #接口标题
  title: boot-demo
#Swagger会提供测试用例,host指定测试时的主机名,如果没有指定就是当前主机,可以指定端口.
host: localhost:8080
#定义的api的前缀,必须已/开头,测试用例的主机则为:host+bashPath
#basePath: /boot-demo

#指定调用接口的协议,必须是:"http", "https", "ws", "wss".默认是http.-表示是个数组元素,即schemes接受一个数组参数
schemes:
  - http
  - https

#对应与http协议头request的Accept,调用者可接受类型,默认是*/*,定义的类型必须是http协议定义的 Mime Types,RestfulAPI一般定义成application/json
#这两个是对所有接口的全局设置,在细化的接口中是还可以对应这两个属性来覆盖全局属性
produces:
  - application/json

#定义接口数据
paths:
  /myInfo:
    #必要字段!定义HTTP操作方法,必须是http协议定义的方法
    get:
      tags:
        - MyInfo 用户信息
      #接口概要
      summary: 用户信息
      #接口描述
      description: 查询出所有用户的所有信息,用户名,别名
      parameters:
        - name: id
          description: 用户ID
          in: query
          type: integer
          required: true
      #返回值描述,必要自动
      responses:
        #返回的http状态码
        200:
          description: 所有用户信息或者用户的集合信息
          #描述返回值
          schema:
            #返回值格式,可选的有array,integer,string,boolean
            $ref: ‘#/definitions/myInfo‘

#定义数据模型
definitions:
  R:
    type: object
    properties:
      code:
        description: 状态码 0:成功  非0:失败
        type: integer
        format: int32
      msg:
        description: 失败原因
        type: string
  myInfo:
    type: object
    properties:
      id:
        description: ID
        type: integer
        format: int32
      age:
        description: 年龄
        type: integer
      name:
        description: 姓名
        type: string

4.启动项目,输入:http://localhost:8080/swagger/index.html 运行如图


有关yaml编写的规范以及字段的意义,这里我就不一一说明,参考上面yaml文件中的注释,或参考下面文章,再不然就自行百度

参考文献

文章来源: https://blog.csdn.net/qq_35098526/article/details/87802697

原文地址:https://blog.51cto.com/11681903/2355858

时间: 2024-11-05 18:51:21

六、springboot整合swagger的相关文章

SpringBoot整合Swagger测试api构建

@Author:SimpleWu 什么是Swagger? Swagger是什么:THE WORLD'S MOST POPULAR API TOOLING 根据官网的介绍: Swagger Inspector:测试API和生成OpenAPI的开发工具.Swagger Inspector的建立是为了解决开发者的三个主要目标. 执行简单的API测试 生成OpenAPI文档 探索新的API功能 我的理解Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.简单

SpringBoot整合swagger

现在Web项目前后端分离越来越多,前后端的沟通成本成了头大的难题. 上个项目虽然使用Postman已经降低了不少沟通成本,但是还是要手写不少Api到Postman测试,耗费了不少时间.这次新项目决定使用SpringBoot来做,各方面都节省了不少配置,一想到Api的对接就有点头大,于是决定把Swagger集成进来,实现Api文档的自动生成(通过http://localhost:8080/swagger-ui.html直接访问),这样前后端对接基本上就零成本了. 话不多说,搞起. 首先,pom引入

springBoot 整合 swagger 展示返回对象的嵌套属性文档注释

spring boot 处理 swagger 嵌套数据展示 在开发的过程中,我们会常常使用swagger做我们的在线文档.我们会在对象的属性上使用@ApiModelProperty 等api注解,但是遇到对象嵌套的时候,如何返回一个嵌套的json文档就需要我们做一些简单的处理 如果只在对象某个属性上使用 @ApiModelProperty 并不会起作用 12345678910111213141516171819202122232425262728293031 @Data@Slf4j@Builde

Spring Boot2 系列教程(十七)SpringBoot 整合 Swagger2

前后端分离后,维护接口文档基本上是必不可少的工作. 一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了.当然这是一种非常理想的状态,实际开发中却很少遇到这样的情况,接口总是在不断的变化之中,有变化就要去维护,做过的小伙伴都知道这件事有多么头大!还好,有一些工具可以减轻我们的工作量,Swagger2 就是其中之一,至于其他类似功能但是却收费的软件,这里就不做过多介绍了.本文主要和大伙来聊下 在Spring Boot 中如何整合 Swagger

SpringBoot系列十一:SpringBoot整合Restful架构(使用 RestTemplate 模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别)

1.概念:SpringBoot整合Restful架构 2.背景 Spring 与 Restful 整合才是微架构的核心,虽然在整个 SpringBoot(SpringCloud)之中提供有大量的服务方便整合,但是这些 整合都不如 Rest 重要,因为 Rest 是整个在微架构之中进行通讯的基础模式.那么对于 Rest 首先必须对其有一个最为核心的解释: 利用 JSON 实现数据的交互处理.而且 Spring 里面提供有一个非常强大的 RestTemplate 操作模版,利用此模版可以非常轻松的实

SpringBoot与Swagger整合

1 SpringBoot与Swagger整合https://blog.csdn.net/jamieblue1/article/details/99847744 2 Swagger详解(SpringBoot+Swagger集成)https://blog.csdn.net/ai_miracle/article/details/82709949 3 SpringBoot 使用Swagger2打造在线接口文档(附汉化教程)https://www.cnblogs.com/suizhikuo/p/93974

转:springboot 与swagger整合出现Unable to infer base url.This is common when using dynamic的解决办法

原文链接:https://blog.csdn.net/miachen520/article/details/95718639 今天在springboot与swagger整合测试的时候跳出如下所示界面 经查资料发现有两种解决办法, 1.直接把@EnableSwagger2注解加在主启动类就可以,这样虽然能解决问题,但是这样会扫到使用的框架的接口, 这种方法要慎用. 2.主启动类加上@ComponentScan("swagger配置类所在包"),以保证配置类被扫描到 最后解决问题之后就可以

Spring Boot入门系列六( SpringBoot 整合thymeleaf)

SpringBoot 整合thymeleaf 一.什么是Thymeleaf模板 Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎.类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎.与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用.它的功能特性如下: @Controller中的方法可以直接返回模板名称,接下来Thyme

swagger+springBoot整合集成(三步看明白)

swagger是什么? swagger是一个后台人员专门测试的一个简单工具,特别适合做前后端分离的项目,之前我们一直都是用的postman,但是这个有点复杂,路径需要自己,而swagger则直接使用,接下来我们就直接上代码说一说swagger,文采不好往见谅! 1.首先需要两个jar包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifac