关键词:
1.pom.xml
<!--Swagger2 - RESTful API文档--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency>
2.Application.java
package com.guilf; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 注:启动类不要放在main/java 根目录下,启动会报错 */ @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
3.SwaggerConfig.java
package com.guilf; import com.google.common.base.Predicate; import org.springframework.boot.autoconfigure.web.BasicErrorController; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.RequestHandler; 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 // 启用 Swagger public class SwaggerConfig { @Bean public Docket createRestApi() { /** * Swagger会默认把所有Controller中的RequestMapping方法都生成API出来,实际上我们一般只需要标准接口的(像返回页面的那种Controller方法我们并不需要), * 所有你可以按下面的方法来设定要生成API的方法的要求。 * 如下我针对RestController注解的类和ResponseBody注解的方法才生成Swaager的API,并且排除了特定的类 */ Predicate<RequestHandler> predicate = new Predicate<RequestHandler>() { public boolean apply(RequestHandler input) { Class<?> declaringClass = input.declaringClass(); if (declaringClass == BasicErrorController.class)// 排除 return false; if(declaringClass.isAnnotationPresent(RestController.class)) // 被注解的类 return true; if(input.isAnnotatedWith(ResponseBody.class)) // 被注解的方法 return true; return false; } }; return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .useDefaultResponseMessages(false) .select() .apis(predicate) // 这里设置api 生成的范围,有两种方式: // 1.上面通过自定义过滤规则 // 2,通过定义需要生成API的包路径 //.apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE)) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("用户信息接口的服务")//大标题 .version("1.0")//版本 .build(); } }
4.User.java
package com.guilf.domain; public class User { private String id; private String name; private Integer age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
5.UserAPIController.java
package com.guilf.mvc; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import com.guilf.domain.User; import java.util.*; /** * @ClassName: UserAPIController * @Description: (使用 swagger 展示API ) * * @version v1.1 */ @RestController @RequestMapping("/users") public class UserAPIController { static Map<String, User> users = Collections.synchronizedMap(new HashMap<String, User>()); @ApiOperation(value = "获取用户列表",notes ="") @RequestMapping(value = "/",method = RequestMethod.GET) public List<User> getUserList(){ // 处理"/users/"的GET请求,用来获取用户列表 // 还可以通过@RequestParam从页面中传递参数来进行查询条件或者翻页信息的传递 List<User> u = new ArrayList<>(users.values()); return u; } @ApiOperation(value="创建用户", notes="根据User对象创建用户") @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") @RequestMapping(value="/", method=RequestMethod.POST) public String postUser(@ModelAttribute User user) { // 处理"/users/"的POST请求,用来创建User // 除了@ModelAttribute绑定参数之外,还可以通过@RequestParam从页面中传递参数 users.put(user.getId(), user); return "success"; } @ApiOperation(value="获取用户信息", notes="根据用户ID获取对应用户信息") @ApiImplicitParams(@ApiImplicitParam(name ="id" ,value = "用户ID",required = true,dataType ="String")) @RequestMapping(value="/{id}", method=RequestMethod.GET) public User getUser(@PathVariable String id) { // 处理"/users/{id}"的GET请求,用来获取url中id值的User信息 // url中的id可通过@PathVariable绑定到函数的参数中 return users.get(id); } @ApiOperation(value ="修改用户信息",notes ="根据用户ID修改对应用户信息") @ApiImplicitParams({ @ApiImplicitParam(name ="id" ,value ="用户ID",required = true,dataType = "String"), @ApiImplicitParam(name ="user",value ="用户实体对象",required = true,dataType = "User")}) @RequestMapping(value="/{id}", method=RequestMethod.PUT) public String putUser(@PathVariable String id, @ModelAttribute User user) { // 处理"/users/{id}"的PUT请求,用来更新User信息 User u = users.get(id); u.setName(user.getName()); u.setAge(user.getAge()); users.put(id, u); return "success"; } @ApiOperation(value ="获取用户信息",notes = "根据用户ID删除对应用户信息") @ApiImplicitParam(name = "id",value = "用户ID",required = true,dataType = "String") @RequestMapping(value="/{id}", method=RequestMethod.DELETE) public String deleteUser(@PathVariable String id) { // 处理"/users/{id}"的DELETE请求,用来删除User users.remove(id); return "success"; } }
6.启动 ,y页面显示
http://localhost:8088/swagger-ui.html
7.新增,插入数据点Try it out
8.点查看
springboot整合swagger-ui快速生成在线api文档
目录SpringBoot整合Swagger-ui实现在线API文档本篇要点一、restful风格简单介绍二、SpringBoot与Swagger-ui快速整合1、第一种方式:使用官方依赖2、第二种方式:使用第三方依赖三、swagger-ui的基本注解源码下载参考阅读SpringBoot整合Swagger-u... 查看详情
springboot整合swagger2框架
一:什么是SwaggerSwagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务。二:添加Swagger2依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><ve 查看详情
springboot整合swagger测试api构建
@Author:SimpleWu什么是Swagger?Swagger是什么:THEWORLD’SMOSTPOPULARAPITOOLING根据官网的介绍:SwaggerInspector:测试API和生成OpenAPI的开发工具。SwaggerInspector的建立是为了解决开发者的三个主要目标。执行简单的API测试生成OpenAPI文档探索新... 查看详情
springboot整合swagger
Swagger使用Swagger有什么用?swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPISpecification,OAS)为基础, 对整个API的开发周期都提供了相应的解决方案,是一个非常庞大的项目(包括设计、编码和测试,... 查看详情
springboot整合swagger2搭建api在线文档
...阅和测试功能。利用Swagger2很容易构建RESTful风格的API,在SpringBoot中集成Swagger2,步骤如下。1.引入依赖<!--Swagger2--><dependency><groupId> 查看详情
swagger和springboot整合
Swagger号称全世界最流行的api框架;RestFulApi文档在线自动生成工具=>Api文档与API定义同步更新配置<!--https://mvnrepository.com/artifact/io.springfox/springfox-swagger2--><dependency> <groupId>io.springfox</g 查看详情
springboot整合swagger
...Api到Postman测试,耗费了不少时间。这次新项目决定使用SpringBoot来做,各方面都节省了不少配置,一想到Api的对接就有点头大,于是决定把Swagger集成进来,实现Api文档的自动生成(通过http://localhost:8080/swagge 查看详情
springboot整合swagger2
SpringBoot整合Swagger2相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。手写Api文档的几个痛点:文档需... 查看详情
springboot整合springfox-swagger2
前言不管SpringBoot整合还是SpringMVC整合Swagger都基本类似,重点就在于配置Swagger,它的精髓所在就在于配置。@目录1、Swagger简介2、整合前可能遇到的问题3、SpringBoot集成Swagger4、配置Swagger4.1、Swagger四部分布局4.2、第二部分:API基... 查看详情
springboot整合swagger2
一关于SwaggerSwagger能成为最受欢迎的RESTAPIs文档生成工具之一,有以下几个原因:Swagger可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。Swagger可以生成客户端SDK代码用于各种不同的平台上的实现。Swagger... 查看详情
springboot整合swagger第二部(动态配置启动swagger,api分组管理)(代码片段)
文章目录动态配置启动SwaggerAPI分组管理动态配置启动Swaggerimportorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.core.env.Environment;import... 查看详情
springboot整合swagger2
手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。接口返回结果不明确不能直接在线测试接口,通常需要使用工具,比如postman接口文档太多,不好管理 Swagger也就是... 查看详情
springboot整合swagger,方便后端测试
参考技术A用Swagger能够在后端写好接口后进行测试,测试过程非常方便。Swagger是一个用于生成、描述和调用RESTful接口的Web服务。通俗的来讲,Swagger就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和... 查看详情
springcloud整合swagger统一服务api(代码片段)
Swagger整合多个微服务统一API接口文档单系统SpringBoot整合Swagger或者Swagger注解介绍 请看另一篇文章Swagger(丝袜哥)快速入门(超详细介绍)准备工具1. 自己搭建准备好微服务环境2.里面至少包含一个注册中心,一个网关... 查看详情
springboot之整合swagger2
参考技术A随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染、先后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远。前端和后端的唯一联系,变成了API接口;API文档变成了... 查看详情
springboot之swagger2集成
一、Swagger2简单介绍 Swagger2,它可以轻松的整合到SpringBoot中,并与SpringMVC程序配合组织出强大RESTfulAPI文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以... 查看详情
springboot整合swagger
本文github位置:https://github.com/WillVi/springboot-swagger2-demo环境准备JDK版本:1.8Springboot版本:1.5.16Swagger及其Swagger-ui版本:2.6.1(关于swagger-ui版本每个版本的汉化方式可能有不同)默认url:http://localhost:8080/swagger-ui.htmlMaven依赖 查看详情
springboot整合swagger2+knife4j
参考技术A前言:前面文件已经发过swagger2的整合教程SpringBoot整合swagger,本文主要是介绍knife4j。Knife4j是为JavaMVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并且功... 查看详情