Skip to content

Commit e0c6349

Browse files
committed
feat: swagger 查询接口放到公共模块
1 parent 4d22b80 commit e0c6349

4 files changed

Lines changed: 96 additions & 50 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.github.cadecode.uniboot.framework.base.plugin.bean.vo;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
/**
9+
* plugin swagger vo
10+
*
11+
* @author Cade Li
12+
* @since 2023/8/19
13+
*/
14+
public class PlgSwaggerVo {
15+
16+
@Data
17+
@AllArgsConstructor
18+
@NoArgsConstructor
19+
@Builder
20+
public static class PlgSwaggerDescResVo {
21+
22+
private String url;
23+
24+
private String description;
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.github.cadecode.uniboot.framework.base.plugin.controller;
2+
3+
import cn.hutool.core.util.ObjectUtil;
4+
import com.github.cadecode.uniboot.framework.base.annotation.ApiFormat;
5+
import com.github.cadecode.uniboot.framework.base.plugin.bean.vo.PlgSwaggerVo.PlgSwaggerDescResVo;
6+
import io.swagger.annotations.Api;
7+
import io.swagger.annotations.ApiOperation;
8+
import lombok.RequiredArgsConstructor;
9+
import lombok.extern.slf4j.Slf4j;
10+
import org.springframework.validation.annotation.Validated;
11+
import org.springframework.web.bind.annotation.PostMapping;
12+
import org.springframework.web.bind.annotation.RequestMapping;
13+
import org.springframework.web.bind.annotation.RestController;
14+
import org.springframework.web.method.HandlerMethod;
15+
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
16+
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
17+
18+
import java.util.ArrayList;
19+
import java.util.Comparator;
20+
import java.util.List;
21+
import java.util.Map;
22+
import java.util.stream.Collectors;
23+
24+
/**
25+
* Swagger 插件 API
26+
*
27+
* @author Cade Li
28+
* @since 2023/8/19
29+
*/
30+
@ApiFormat
31+
@Slf4j
32+
@RequiredArgsConstructor
33+
@Api(tags = "Swagger 插件")
34+
@RequestMapping("plugin/swagger")
35+
@RestController
36+
@Validated
37+
public class PlgSwaggerController {
38+
39+
/**
40+
* 获取全部接口的处理器 mapping
41+
*/
42+
private final RequestMappingHandlerMapping handlerMapping;
43+
44+
@ApiOperation("获取全部接口及注解")
45+
@PostMapping("list_desc_vo")
46+
public List<PlgSwaggerDescResVo> listSwaggerVo() {
47+
Map<RequestMappingInfo, HandlerMethod> methodMap = handlerMapping.getHandlerMethods();
48+
return methodMap.entrySet()
49+
.stream()
50+
.map(e -> {
51+
ArrayList<String> urlList = new ArrayList<>(e.getKey().getPatternsCondition().getPatterns());
52+
String url = null;
53+
if (ObjectUtil.isNotEmpty(urlList)) {
54+
url = urlList.get(0);
55+
}
56+
ApiOperation operation = e.getValue().getMethod().getAnnotation(ApiOperation.class);
57+
String description = null;
58+
if (ObjectUtil.isNotNull(operation)) {
59+
description = operation.value();
60+
}
61+
return PlgSwaggerDescResVo.builder().url(url).description(description).build();
62+
})
63+
.filter(o -> ObjectUtil.isNotEmpty(o.getUrl()))
64+
.distinct()
65+
.sorted(Comparator.comparing(PlgSwaggerDescResVo::getUrl))
66+
.collect(Collectors.toList());
67+
}
68+
}

framework/framework_svc/src/main/java/com/github/cadecode/uniboot/framework/svc/bean/vo/SysApiVo.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package com.github.cadecode.uniboot.framework.svc.bean.vo;
22

33
import com.github.cadecode.uniboot.common.core.web.response.PageParams;
4-
import lombok.*;
4+
import lombok.Data;
5+
import lombok.EqualsAndHashCode;
56

67
import javax.validation.constraints.NotEmpty;
78
import javax.validation.constraints.NotNull;
@@ -56,15 +57,4 @@ public static class SysApiRolesResVo {
5657

5758
private List<String> roles;
5859
}
59-
60-
@Data
61-
@AllArgsConstructor
62-
@NoArgsConstructor
63-
@Builder
64-
public static class SysApiSwaggerResVo {
65-
66-
private String url;
67-
68-
private String description;
69-
}
7060
}

framework/framework_svc/src/main/java/com/github/cadecode/uniboot/framework/svc/controller/SysApiController.java

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package com.github.cadecode.uniboot.framework.svc.controller;
22

3-
import cn.hutool.core.util.ObjectUtil;
43
import com.github.cadecode.uniboot.common.core.web.response.PageResult;
54
import com.github.cadecode.uniboot.framework.api.consts.KeyPrefixConst;
65
import com.github.cadecode.uniboot.framework.base.annotation.ApiFormat;
76
import com.github.cadecode.uniboot.framework.base.annotation.ApiInner;
87
import com.github.cadecode.uniboot.framework.svc.bean.po.SysApi;
98
import com.github.cadecode.uniboot.framework.svc.bean.vo.SysApiVo.SysApiRolesReqVo;
109
import com.github.cadecode.uniboot.framework.svc.bean.vo.SysApiVo.SysApiRolesResVo;
11-
import com.github.cadecode.uniboot.framework.svc.bean.vo.SysApiVo.SysApiSwaggerResVo;
1210
import com.github.cadecode.uniboot.framework.svc.convert.SysApiConvert;
1311
import com.github.cadecode.uniboot.framework.svc.service.SysApiService;
1412
import com.github.cadecode.uniboot.framework.svc.service.SysRoleService;
@@ -24,17 +22,10 @@
2422
import org.springframework.web.bind.annotation.RequestBody;
2523
import org.springframework.web.bind.annotation.RequestMapping;
2624
import org.springframework.web.bind.annotation.RestController;
27-
import org.springframework.web.method.HandlerMethod;
28-
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
29-
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
3025

3126
import javax.validation.Valid;
3227
import javax.validation.constraints.NotEmpty;
33-
import java.util.ArrayList;
34-
import java.util.Comparator;
3528
import java.util.List;
36-
import java.util.Map;
37-
import java.util.stream.Collectors;
3829

3930
import static com.github.cadecode.uniboot.framework.svc.bean.vo.SysApiVo.SysApiAddReqVo;
4031
import static com.github.cadecode.uniboot.framework.svc.bean.vo.SysApiVo.SysApiUpdateReqVo;
@@ -57,10 +48,6 @@ public class SysApiController {
5748
private final SysApiService sysApiService;
5849
private final SysRoleService sysRoleService;
5950

60-
/**
61-
* 获取全部接口的处理器 mapping
62-
*/
63-
private final RequestMappingHandlerMapping handlerMapping;
6451

6552
@ApiOperation("查询API列表(带角色)")
6653
@PostMapping("page_roles_vo")
@@ -100,31 +87,6 @@ public List<SysApiRolesResVo> listRolesVoByApiIds(@RequestBody @NotEmpty List<Lo
10087
return sysApiService.listRolesVoByApiIds(apiIdList);
10188
}
10289

103-
@ApiOperation("获取全部接口及 swagger 注解")
104-
@PostMapping("list_swagger_vo")
105-
public List<SysApiSwaggerResVo> listSwaggerVo() {
106-
Map<RequestMappingInfo, HandlerMethod> methodMap = handlerMapping.getHandlerMethods();
107-
return methodMap.entrySet()
108-
.stream()
109-
.map(e -> {
110-
ArrayList<String> urlList = new ArrayList<>(e.getKey().getPatternsCondition().getPatterns());
111-
String url = null;
112-
if (ObjectUtil.isNotEmpty(urlList)) {
113-
url = urlList.get(0);
114-
}
115-
ApiOperation operation = e.getValue().getMethod().getAnnotation(ApiOperation.class);
116-
String description = null;
117-
if (ObjectUtil.isNotNull(operation)) {
118-
description = operation.value();
119-
}
120-
return SysApiSwaggerResVo.builder().url(url).description(description).build();
121-
})
122-
.filter(o -> ObjectUtil.isNotEmpty(o.getUrl()))
123-
.distinct()
124-
.sorted(Comparator.comparing(SysApiSwaggerResVo::getUrl))
125-
.collect(Collectors.toList());
126-
}
127-
12890
@ApiInner(onlyClient = true)
12991
@ApiOperation("查询API列表-全部")
13092
@PostMapping("list_roles_vo")

0 commit comments

Comments
 (0)