QQ交流群:64655993 希望能对您有所帮助!!!
环境说明:
Eclipse版本: eclipse-jee-photon-R-win32-x86_64
JDK:1.8
Maven:3.6.0
特点:
第一部分:项目创建
1、创建一个maven项目,右键新建项目,选择Other
2、选择 Maven Project
3、点击下一步 选择工作空间
4、选择项目类型 webapp
5、录入项目名等基本信息
6、刚创建好的样子(文件结构)
注意:此时可能会报错,解决方案如下
https://blog.csdn.net/llwy1428/article/details/89461477
7、对创建好的项目,设置对应的JDK版本
8、项目正常的样子(可以开发)
9、项目目录结构
第二部分:源代码
pom.xml
4.0.0
SpringBootSwagger
SpringBootSwagger
war
0.0.1-SNAPSHOT
SpringBootSwagger Maven Webapp
http://maven.apache.org
org.springframework.boot
spring-boot-starter-parent
2.0.3.RELEASE
junit
junit
test
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
io.springfox
springfox-swagger2
2.6.1
io.springfox
springfox-swagger-ui
2.6.1
SpringBootSwagger
Swagger2.java
package com.config;
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 Swagger2 {
//swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
@Bean
public Docket createRestApi() {// 创建API基本信息
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.controller"))// 扫描该包下的所有需要在Swagger中展示的API,@ApiIgnore注解标注的除外
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {// 创建API的基本信息,这些信息会在Swagger UI中进行显示
return new ApiInfoBuilder()
.title("Swagger接口文档")
.description("Swagger-接口文档")// API描述
.version("1.0.0")// 版本号
.build();
}
}
UserInput.java
package com.input;
public class UserInput {
private String userName;
private String passWord;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
SwaggerController.java
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.input.UserInput;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(value = "Swagger 接口平台 api")
@Controller
public class SwaggerController {
/**
* Post请求 保存用户信息
* @param input
* @return String
*/
@ApiOperation(value = "Post请求 保存用户信息")
@ResponseBody
@RequestMapping(method = RequestMethod.POST, value = "/user/postUser")
public String postUser(@RequestBody UserInput input) {
return "保存用户:"+input.getUserName()+" 操作成功!";
}
/**
* Get 请求 获取用户信息
* @param id
* @return String
*/
//或者 @GetMapping(value = "/user/getUser")
@ApiOperation(value = "Get 请求 获取用户信息")
@ResponseBody
@RequestMapping(method = RequestMethod.GET, value = "/user/getUser")
public String getUser(@RequestParam Integer id) {
String userName = "Swagger";
return "您获取的用户名是:"+userName;
}
}
Application.java
package com;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cache.annotation.EnableCaching;
@EnableAutoConfiguration()
@ServletComponentScan
@SpringBootApplication
@EnableCaching
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
System.out.println(" ==================================");
System.out.println(" Swagger接口系统启动成功!");
System.out.println(" ==================================");
}
}
第三部分:运行、效果
1、右键运行主程序:
Application.java =》 Run As =》 Java Application
说明:此处没有配置 application.yml ,所以默认端口是 8080 ,如有其它端口要求,可自行配置 application.yml 文件。
2、控制台运行成功的效果:
3、浏览器查看
打开浏览器,输入地址: http://localhost:8080/swagger-ui.html
4、实际操作(GET 请求)
5、实际操作(POST 请求)
至此,SpringBoot 整合 Swagger2 完毕 !
Swagger2通过注解来生成API接口文档,文档信息包括 接口名、请求方法、参数、返回信息等。通常情况下用于生成在线API文档:
@Api:修饰整个类,用于描述Controller类
@ApiOperation:描述类的方法,或者说一个接口
@ApiParam:单个参数描述
@ApiProperty:用对象接收参数时,描述对象的一个字段。
@ApiResponse:HTTP响应的一个描述
@ApiResponses:HTTP响应的整体描述
@ApiIgnore:使用该注解,表示Swagger2忽略这个API
@ApiError:发生错误返回的信息
@ApiParamImplicit:一个请求参数
@ApiParamsImplicit:多个请求参数
参数说明
1. name :参数名。
2. value : 参数的具体意义,作用。
3. required : 参数是否必填。
4. dataType :参数的数据类型。
5. paramType :查询参数类型,这里有几种形式:
@ApiImplicitParams:
用于方法,包含多个 @ApiImplicitParam。
@Api:
作用在类上,用来标注该类具体实现内容。标识这个类是swagger的资源 。
参数:
1. tags:允许您为操作设置多个标签的属性。
2. description:可描述该类的作用。
更多详解请参考:
https://blog.csdn.net/xupeng874395012/article/details/68946676