Springboot整合Swagger(2020.04.01)

@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. 浏览器输入:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

大功告成!!!!!!!!!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值