knife4j文档请求异常_Spring Boot整合knife4j生成Api文档

简介

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案, knife4j的前身是swagger-bootstrap-ui,为了契合微服务的架构发展,由于原来swagger-bootstrap-ui采用的是后端Java代码+前端Ui混合打包的方式,在微服务架构下显的很臃肿,因此项目正式更名为knife4j。

maven引用

第一步,是在项目的pom.xml文件中引入knife4j的依赖,如下:

            com.github.xiaoymin        knife4j-spring-boot-starter                2.0.4    

创建Swagger配置文件

@Configuration@EnableSwagger2@EnableKnife4jpublic class SwaggerConfiguration {​    @Bean(value = "defaultApi2")    public Docket defaultApi2() {        Docket docket=new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                //分组名称                .groupName("2.X版本")                .select()                //这里指定Controller扫描包路径                .apis(RequestHandlerSelectors.basePackage("com.yanyu.spring.knife4jboot.controller"))                .paths(PathSelectors.any())                .build();        return docket;    }​    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("接口说明")                .description("DEMO服务接口说明")                .termsOfServiceUrl("http://localhost:8888/")                .version("1.0")                .build();    }​}

常用注解说明

@Api

解释:用在类中,标识这个类是swagger的资源

常用参数:

  1. tags:类标签,一般用来写类的名称或作用。
  2. description :详情描述

示例:

@RestController@Api(tags = "hello controller")public class HelloController {}

@ApiOperation

解释:用在方法上,说明方法的作用,每一个url资源的定义

常用参数:

  1. value :方法说明
  2. notes :注释说明

示例:

@RestController@Api(tags = "hello controller")public class HelloController {​    @ApiOperation(value = "hello1")    @GetMapping("hello1")    public String hello1() {        return "hello1";    }}

@ApiOperationSupport

解释:用在类中,标识这个类是swagger的资源

常用参数:

  1. order:排序
  2. auth :作者

示例:

@RestController@Api(tags = "hello controller")public class HelloController {​    @ApiOperation(value = "hello1")    @ApiOperationSupport(order = 2)    @GetMapping("hello1")    public String hello1() {        return "hello1";    }    @ApiOperation(value = "hello2")    @ApiOperationSupport(order = 2)    @GetMapping("hello2")    public String hello2() {        return "hello2";    }}

@ApiImplicitParam:

解释:作用在方法上,表示单独的请求参数

常用参数:

  1. name :参数名。
  2. value : 参数的具体意义,作用。
  3. required : 参数是否必填。
  4. dataType :参数的数据类型。
  5. paramType :查询参数类型,这里有几种形式:

示例:

@RestController@Api(tags = "hello controller")public class HelloController {​    @ApiOperation(value = "hello1")    @ApiOperationSupport(order = 2)    @GetMapping("hello1")    public String hello1() {        return "hello1";    }    @ApiOperation(value = "hello2")    @ApiOperationSupport(order = 1)    @GetMapping("hello2")    public String hello2() {        return "hello2";    }​    @ApiOperation(value = "hello3")    @ApiOperationSupport(order = 3)    @ApiImplicitParam(name="name",value="用户名",dataType="String", paramType = "query")    @GetMapping("hello3")    public String hello3(String name) {        return "hello3";    }}

@ApiModel

解释:用于描述一个数据模型的信息,即我们常用的实体、VO类、DTO类等描述

常用参数:

  1. value : 数据模型名称。(常用)
  1. description:具体描述
  2. parent:父类描述

示例:

@ApiModel(value = "学生")public class Student {​    @ApiModelProperty(value = "姓名")    private String name;​    @ApiModelProperty(value = "地址")    private String address;}

@ApiModelProperty

解释:用于描述数据模型的属性信息

常用参数:

  1. value:字段说明

示例:

@ApiModel(value = "学生")public class Student {    @ApiModelProperty(value = "姓名")    private String name;​    @ApiModelProperty(value = "地址")    private String address;}

访问地址:

http://ip:port/doc.html

目录结构

77675e3f6f60997635905906588e13bc.png

如果有哪里写得不对的,还请各位小友指正,只有不断试错,才能慢慢提高。如果你觉得对你有帮助,请点赞+关注,谢谢!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值