springBoot(15):集成Swagger

一、简介

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。http://swagger.io/

Springfox 的前身是swagger-springmvc,是一个开源的API doc框架,可以将我们的 Controller的方法以文档的形式展现,基于Swagger。http://springfox.github.io/springfox/

二、操作

2.1、添加依赖

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

2.2、代码

package com.example.demo.utils.configuration;

import static springfox.documentation.builders.PathSelectors.regex;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Swagger配置
 * @Author: 我爱大金子
 * @Description: Swagger配置
 * @Date: Create in 11:33 2017/6/22
 */
@Configuration
@EnableSwagger2
public class Swagger2Configuration {
    @Bean
    public Docket accessToken() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("index")// 定义组
                .select() // 选择那些路径和 api 会生成 document
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) // 拦截的包路径
                .paths(regex("/index/.*"))// 拦截的接口路径
                .build() // 创建
                .apiInfo(apiInfo()); // 配置说明
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()//
                .title("测试")// 标题
                .description("spring boot 全集")// 描述
                .termsOfServiceUrl("http://www.roncoo.com")//
                .contact(new Contact("我爱大金子", "http://1754966750.blog.51cto.com/", "[email protected]"))// 联系
                // .license("Apache License Version 2.0")// 开源协议
                // .licenseUrl("https://github.com/springfox/springfox/blob/master/LICENSE")// 地址
                .version("1.0")// 版本
                .build();
    }
}

测试用的Controller:

@RestController
@RequestMapping("/index")
public class IndexController {
    @Autowired
    private UserMapper mapper;

    @RequestMapping(value = "/index", method = RequestMethod.POST)
    public Map<String, Object> index(Integer id) throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
        User user = mapper.selectByPrimaryKey(id);
        if (null != user) {
            map.put("id", user.getId());
            map.put("name", user.getName());
        } else {
            map.put("id", -1);
            map.put("name", "error");
        }
        return map;
    }
}

效果:访问http://localhost:8989/swagger-ui.html

2.3、自定义(注解的使用)

@ApiIgnore

忽略暴露的 api

@ApiOperation(value = "查找", notes = "根据用户 ID 查找用户")

添加说明

其他注解:

@Api :用在类上,说明该类的作用

@ApiImplicitParams :用在方法上包含一组参数说明

@ApiResponses :用于表示一组响应

@ApiResponse :用在@ApiResponses 中,一般用于表达一个错误的响应信息

code:数字,例如 400

message:信息,例如"请求参数没填好"

response:抛出异常的类

@ApiModel :描述一个 Model 的信息(这种一般用在 post 创建的时候,使用@RequestBody 这样的场景,请求参数无法使用@ApiImplicitParam 注解进行描述的时候)

@ApiModelProperty :描述一个 model 的属性

更多请查看:https://github.com/swagger-api/swagger-core/wiki/Annotations

时间: 2024-10-01 04:57:33

springBoot(15):集成Swagger的相关文章

【springboot】集成swagger

1.简介 本章介绍 SpringBoot2.1.9 集成 Swagger2 生成在线的API接口文档. 2. pom依赖: 通过对比了swagger的几个版本,发现还是2.6.1问题最少 <!-- swagger2 依赖 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>

Spring Boot 集成Swagger

Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单. 更多关于Swagger的作用,相信大家百度一下能了解的更全面,本文以SpringBoot中集成Swagger为例做介绍说明. 一.修改pom.xml,添加maven依赖 <!-- Swagger

SpringBoot 集成 Swagger

Swagger官网 什么是Swagger Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现 Swagger 文件可以在许多不同的平台上从代码注释中自动生成 Swagger 有一个强大的社区 依赖导入 <!-- Swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId&

SpringBoot集成Swagger,Postman,newman,jenkins自动化测试.

环境:Spring Boot,Swagger,gradle,Postman,newman,jenkins SpringBoot环境搭建. Swagger简介 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. 一.SpringBoot集成Swagger 1.build.gradle增加swagger相关jar包,maven项目同理. 2.增加SwaggerConfig配置文件. 前两步完成,访问http://localhost:8080/demoService/swa

基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】

基于SpringMVC下的Rest服务框架搭建[1.集成Swagger] 1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的rest服务,通常这些服务要不就是用于手机app的开发,要不就是提供给第三方开发者使用,不管哪种情况,你都需要提供详细的说明给别人,而Swagger就是为这种情况而生的,通过在接口上的注解,生成可供第三方模拟测试和阅读的接口列表,既美观又使用,真是行走江湖之必备良药. [XmPlatform原创,转载的

MP实战系列(二)之集成swagger

其实与spring+springmvc+mybatis集成swagger没什么区别,只是之前写的太不好了,所以这次决定详细写. 提到swagger不得不提rest,rest是一种架构风格,里面有对不同的资源有不同的请求标识.例如PUT,POST,GET,DELETE,OPTIONS,HEAD,PATCH等. 对于技术的初学,最好的话还是建议去官网,官网最详细也最权威,虽然不少博客对此有挺好的解说,但还是强烈建议去官网,不要求仔仔细细阅读,至少读个大概. 对于目前,有人要问我swagger能做什么

Springboot Application 集成 OSGI 框架开发

内容来源:https://www.ibm.com/developerworks/cn/java/j-springboot-application-integrated-osgi-framework-development/index.html Springboot Application 集成 OSGI 框架开发 张 莹莹2018 年 4 月 02 日发布 WeiboGoogle+用电子邮件发送本页面 0 Java 类加载器 启动类加载器 (Bootstrap ClassLoader) 是 Ja

Web Api集成Swagger

WebApi集成Swagger 1.新建一个WebApi空项目 2.新建一个Person实体类: public class Person { public int ID { get; set; } public string UserName { get; set; } public string Password { get; set; } } 3.新建一个PersonAPI控制器(PersonController) public class PersonController : ApiCon

Java高并发秒杀系统API之SSM框架集成swagger与AdminLTE

初衷与整理描述 Java高并发秒杀系统API是来源于网上教程的一个Java项目,也是我接触Java的第一个项目.本来是一枚c#码农,公司计划部分业务转java,于是我利用业务时间自学Java才有了本文,本来接触之初听别人说,c#要转java很容易,我也信了,但是真正去学习的时候还是踩了无数个坑,好在朋友有几个做安卓的,向他们讨教了一些经验,但是他们做安卓的和web又是两个方向,于是继续一个人默默采坑避雷之旅,首先上手的是下面这个Java高并发秒杀系统API. 学习java的初衷一个是公司转行,二

springboot elasticsearch 集成注意事项

文章来源: http://www.cnblogs.com/guozp/p/8686904.html 一 elasticsearch基础 这里假设各位已经简单了解过elasticsearch,并不对es进入更多的,更深层次的解释,如有必要,会在写文章专门进行es讲解. Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. 但是,Lucene只是一个库.想要使用它,你必