springboot项目中引入swagger

3 篇文章 1 订阅
2 篇文章 1 订阅

在swagger项目中添加swagger包

        <!--swagger-->
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

 使用注解启动swagger

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
@EnableSwagger2
public class SwaggerApp {
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("Spring Boot 使用Swagger 构建RestFul API")
                .contact(new Contact("cmf","https://blog.csdn.net/chai_cmf/",":"))
                .version("1.0")
                .description("API 描述")
                .build();
    }
}

 在application启动类中添加@ComponentScan(basePackages = "com.xxx.config")

@SpringBootApplication
@ComponentScan(basePackages = "com.xxx")
public class SwaggerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SwaggerApplication.class, args);
    }

}

在浏览器中输入项目的访问地址后面加上/swagger-ui.html

 创建controller类  

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

//tags 说明该类得作用,可以在UI界面上看到得注解
//descriptiond 说明的描述
@Api(tags = "查询接口",description = "第一个swagger学习")
@Controller
@RequestMapping("/swagger")
public class SwaggerController {

    //给接口添加描述信息
    @ApiOperation("新增用户接口")
    @GetMapping("/select")
    public  @ResponseBody String select(){
        return "hello world";
    }

}

swagger-ui.html

 

 注解:

 必填  @Api(tags = "",description = "",value ="" ) 

        tag:说明类的作用可以在ui界面上看到

        description:描述信息

        value:说明类的作用

@Api(tags = "查询接口",description = "第一个swagger学习",value ="访问" )

@ApiOperation(notes="",value="")  必填

        notes:该方法的作用何用

        value:说明该方法的作用和用途 显示在UI界面上

   //给接口添加描述信息
    @ApiOperation(notes = "查询helloworld",value = "查询hello world 返回String")
    @GetMapping("/select")
    public  @ResponseBody String select(){
        return "hello world";
    }

 非必填@ApimplicitParams  可用在方法上,表明一组参数的说明

name:参数名    value:参数的具体意义    required:是否必填  dataType:参数的数据类型   paramType:查询参数类型有以下几种形式

类型作用
path以地址的形式提交数据
query直接跟参数完成自动映射赋值
body以流的形式提交 仅支持POST
header参数在request headers 里边提交
form以form表单的形式提交 仅支持POST

示例:

  //给接口添加描述信息
    @ApiOperation(notes = "返回id",value = "根据传递的id返回数据")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value = "swagger的id",required = true,dataType = "String",paramType = "query"),
    })
    @GetMapping("/getId")
    public  @ResponseBody String getId(String id,String name){
        return "id="+id+"----name="+name;
    }

非必填 @ApiResponse  : 用在请求得到方法上,并表示一组相应

  @ApiOperation(notes="显示ApiResponsed的作用",value = "apiResponse的使用")
    @ApiResponses({
            @ApiResponse(code=400,message="请求参数没填好"),
            @ApiResponse(code = 404,message = "请求路径版本不对,或者路径跳转不对")
    })
    @GetMapping("apiResponse")
    public @ResponseBody String LookResponse(){
        return "apiResponse";
    }

 非必填@ApiParam   用在请求方法中,描述参数信息

        name:参数名称,参数名称可以覆盖方法参数名称,路径参数必须与方法参数一致

        value: 参数的简要说明

        defaultValue 参数的默认值

        required 属性是否必填,默认为false

 //给接口添加描述信息
    @ApiOperation(notes = "返回id",value = "根据传递的id返回数据")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value = "swagger的id",required = true,dataType = "String",paramType = "query"),
    })
    @GetMapping("/getId")
    public  @ResponseBody String getId(String id,@ApiParam(name="name",value = "名称",required = false) @RequestParam(value = "name", required = false)String name){
        return "id="+id+"----name="+name;
    }

【非必填】@ApiIgnore用在类或者方法上,表明在swagger2中忽略这个类或者方法或者参数

生产环境中要是禁用swagger  在配置类中增加profile的限制

@Profile("uat")

@ApiModel

用于对类的说明。用于实体类接受

@ApiModelProperty

   用于方法,字段,表示对model属性的额说明或者数据操作更改

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

@ApiModel(value = "User",description = "用户")
public class UserDto implements Serializable {

    @ApiModelProperty(value = "ID",required = true)
    private String id;
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值