@Api:用在类上,说明该类的作用。
@ApiOperation:注解来给API增加方法说明。
@ApiImplicitParams : 用在方法上包含一组参数说明。
@ApiImplicitParam:用来注解来给方法入参增加说明。
@ApiResponses:用于表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
@ApiModel:描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:描述一个model的属性
其中
@ApiResponse参数:
code:数字,如400
message:信息,如“参数填写错误”
response:抛出异常的类
@ApiImplicitParam参数:
paramTpye:指定参数放在哪些地方(header/query/path/body/form)
name:参数名
dataTpye:参数类型
required:是否必输(true/false)
value:说明参数的意思
defaultValue:参数默认值
1.在idea新建springboot关联项目
2.创建项目finish之后,打开pom.xml文件
加入以下关联配置
<!-- Swagger API文档 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
3.这个时候创建三个java文件
如下:
这三个文件的代码如下:
第一个:Swagger1Application.java 这个是启动类
注意我的包名,修改为你们对应的包名
package com.swagger.test.swagger_1;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
//@ComponentScan("com.swagger.test")
public class Swagger1Application {
public static void main(String[] args) {
SpringApplication.run(Swagger1Application.class, args);
}
}
第二个:SwaggerConfig.java 这个是swagger配置选项
package com.swagger.test.swagger_1;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration //在springboot中加载配置文件
@EnableSwagger2 //加载swagger
public class SwaggerConfig {
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) // 调用apiInfo方法
.pathMapping("/") //配置访问路径
.select()
.apis(RequestHandlerSelectors.basePackage("com.swagger.test"))//api接口包扫描路径
.paths(PathSelectors.regex("/.*")) //可以根据url路径设置哪些请求加入文档,忽略哪些请求
.build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("SpringBoot整合Swagger")//设置文档的标题
.description("第一次SpringBoot整合Swagger的详细信息...")//设置文档的描述
.contact(new Contact("百度一下","www.baidu.com", "sr@qq.com"))//设置文档的联系方式
.version("9.0.1")//设置文档的版本信息
.license("许可license-->百度一下")//设置文档的License信息
.licenseUrl("http://www.baidu.com")
.build();
}
}
第三个:SwaggerConfig.java 这个是要调用的接口
package com.swagger.test.swagger_1;
import io.swagger.annotations.*;
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.RestController;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
@RestController
@Api(tags="这是第一个测试集合",value="/", description = "@description注解")//value会被tags代替
@RequestMapping("/v1") //此处的注释的作用是:需要在后续的所有的方法前加/V1
public class MyPostMethod {
/**
* 第一种
*/
//此变量用来装我们的cookie信息
private static Cookie cookie;
//用户登录成功获取到cookie信息,再访问其他接口获取到列表
@RequestMapping(value="/login1", method = RequestMethod.POST)
@ApiOperation(value="登录接口, 成功后获取cookies信息1", httpMethod = "POST",notes="@ApiOperation的notes标签,用户:admin 密码:123456")
public String login1(HttpServletResponse response,
@ApiParam(name="username",value="姓名")@RequestParam String username,
@ApiParam("密码")@RequestParam(value="passWord", required = true) String password){
if(username.equals("admin")&& password.equals("123456")){
cookie=new Cookie("login", "success");
response.addCookie(cookie);
return "恭喜你登录成功"+cookie;
}
return "用户名或者密码错误";
}
/**
* 第一种改写,使用ApiImplicitParam改写
*/
@RequestMapping(value = "/login1-1",method = RequestMethod.POST)
@ApiOperation(value = "登陆接口,成功后获取cookies信息2",notes = "用户:admin 密码:123456")
@ApiImplicitParams({
@ApiImplicitParam(name="username",value="姓名",required = true,dataType = "String",paramType = "query"),
@ApiImplicitParam(name="password",value="密码",required = true,dataType = "String",paramType = "query")
})
public String login2(HttpServletResponse response,
@RequestParam String username,
@RequestParam String password){
if(username.equals("admin")&& password.equals("123456")){
cookie=new Cookie("login", "success");
response.addCookie(cookie);
return "恭喜你登录成功"+cookie;
}
return "用户名或者密码错误";
}
/**
* 第二种
*/
//使用ApiImplicitParam标签直接定义
@RequestMapping(value="/login2",method = RequestMethod.GET)
@ApiOperation(value = "根据用户编号获取用户姓名",notes="仅有1和2有返回值,请输入1或2")
@ApiImplicitParam(name="userNumber",value = "用户编号",required = true,dataType = "Integer",paramType = "query")
public String getUserName(@RequestParam Integer userNumber){
if(userNumber == 1 ){
return "张三丰1";
}else if(userNumber == 2){
return "扫地僧2";
}else {
return "请输入正确编号";
}
}
}
第四:找到application.properties 配置文件
然后添加
#是否激活 swagger true or false
swagger.enable=true
4. 找到启动类,右键run()
5. 浏览器输入:
大功告成!!!!!!!!!!!