基于springfox使用Swagger

引入包

		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-boot-starter</artifactId>
			<version>3.0.0</version>
		</dependency>

配置

package com.example.swagger.config;

import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
public class SwaggerConfig {
    @Bean
    public Docket docket() {
        ApiInfo apiInfo = new ApiInfoBuilder().title("MySwagger")
                .description("MySwagger API 接口文档")
                .version("1.0.0")
                .build();

        Docket docket = new Docket(DocumentationType.SWAGGER_2);
        docket.apiInfo(apiInfo)//设置SwaggerUi描述信息
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//@ApiOperation注解的方法才显示
                .apis(RequestHandlerSelectors.basePackage("com.example.swagger"))//设置扫描包
                .build()
                .enable(true);//可作为配置变量,仅测试环境配置true

        return docket;
    }
}


dto层

package com.example.swagger.dto;

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

@Data
@ApiModel("返回类型")
public class Response {
    @ApiModelProperty(value = "主键",name = "id",required = true,example = "1",hidden = true)
    private Integer id;
    @ApiModelProperty(value = "姓名",name = "name",required = true,example = "fyy",hidden = false)
    private String name;
}

controller层

package com.example.swagger.controller;

import com.example.swagger.dto.Request;
import com.example.swagger.dto.Response;
import io.swagger.annotations.*;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;

@RestController
@RequestMapping("api")
@Api(tags = {"我的SwaggerController"})
public class SwaggerController {

    @ApiOperation(value = "test方法",notes = "方法描述")
    @GetMapping("/test")
    @ApiImplicitParam(name="id", value = "主键", paramType="query",dataType = "Integer", example = "1",required = true)
    public Response test(Integer id){
        return new Response();
    }

    @ApiOperation(value = "test方法",notes = "方法描述")
    @GetMapping("/test2")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name="id", value = "主键", paramType="query",dataType = "Integer",  example = "1",required = true),
            @ApiImplicitParam(name="name", value = "姓名", paramType="query",dataType = "String",  example = "fyy",required = true)
    })
    public Response test2(Integer id,String name){
        return new Response();
    }

    @ApiOperation(value = "get方法",notes = "方法描述")
    @GetMapping("/get")
    public Response testGet(@ApiParam(name="id", value = "主键", required = true,example = "1") Integer id){
        return new Response();
    }

    @ApiOperation(value = "post方法",notes = "方法描述")
    @PostMapping("/post")
    public Response testPost(@RequestBody Request request){
        return new Response();
    }


    @PostMapping("/testNotShow")
    public Response testNotShow(@RequestBody Request request){
        return new Response();
    }

    @ApiIgnore//不生成api文档
    @PostMapping("/testNotShow2")
    public Response testNotShow2(@RequestBody Request request){
        return new Response();
    }
}

Sawgger页面地址:http://localhost:8080/swagger-ui/index.html#/

可能遇到的问题

Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
//Springboot版本太高导致,降低Springboot版本即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值