Skip to content

Latest commit

 

History

History
126 lines (105 loc) · 2.98 KB

readme.md

File metadata and controls

126 lines (105 loc) · 2.98 KB

简介

基于knife4j,swagger增强处理

使用方法

依赖

<dependency>
    <groupId>site.lanmushan</groupId>
    <artifactId>slash-doc-starter</artifactId>
    <version>1.0.4</version>
</dependency>

配置文件

##sw兼容版本配置
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
debug: false
##配置开启关闭
slashdoc:
  enabled: true
  enhance: true
  title: 测试文档

增强内容

springmvc增强

直接在PostMapping,GetMapping写入name名称即可,省去原来的@ApiOperation注解,如果写了取原始的名称

   @PostMapping(name = "测试测试", value = "/test")
public void PostMappingSaveGroup(@RequestBody SysTbApp sysTbApp,@RequestParam String test){
        return;
        }

@Validated和@Valid校验增强,

根据方法中@Validated和@Valid的注解,判断实体类内部相关校验注解

    @PostMapping(name = "Validated分组测试UpdateGroup", value = "/PostMappingUpdateGroup")
    public void PostMappingUpdateGroup(@RequestBody @Validated(UpdateGroup.class)
                                               SysTbApp sysTbApp, @RequestParam String test) {
        return;
    }

    @PostMapping(name = "Valid测试", value = "/PostMappingValid")
    public void PostMapping3(@RequestBody @Valid SysTbApp sysTbApp, @RequestParam String test) {
        return;
    }

字典映射增强

在属性上增加 @ApiModelEnumMapping注解,可将枚举值直接映射到doc中

@Data
@ApiModel
public class SysTbApp {
    private String appWebUrl;
    @ApiModelProperty(value = "接口地址")
    private String appApiUrl;
    @ApiModelProperty(value = "启用状态", required = true)
    @ApiModelEnumMapping(value = EnabledEnum.class)
    private Integer enabled;
    @ApiModelProperty(value = "字典")
    private SysTbDict tbDict;
    @ApiModelProperty("测试范围")
    @Min(value = 10)
    private Integer aaa;
}
package site.lanmushan.slashdocdemo.enums;

import site.lanmushan.slashdocstarter.api.ApiMapping;
import site.lanmushan.slashdocstarter.api.ApiModelEnumMappingProvider;

import java.util.ArrayList;
import java.util.List;

/**
 * @author dy
 */

public enum EnabledEnum implements ApiModelEnumMappingProvider {
    /**
     * 测试
     */
    enable(1, "启用"),
    disabled(0, "禁用");
    private int type;
    private String value;

    EnabledEnum(int s, String s1) {
        this.type = s;
        this.value = s1;
    }

    public int getType() {
        return type;
    }

    public String getValue() {
        return value;
    }

    @Override
    public List<ApiMapping> readMapping() {
        EnabledEnum[] enabledEnums = EnabledEnum.values();
        List<ApiMapping> arrList = new ArrayList<>();
        for (int i = 0; i < enabledEnums.length; i++) {
            EnabledEnum userTypeEnum = enabledEnums[i];
            arrList.add(new ApiMapping(userTypeEnum.type, userTypeEnum.value));
        }
        return arrList;
    }
}