feat:springdoc 在线文档根据接口最外层目录结构分组

This commit is contained in:
taogang
2023-09-11 21:35:45 +08:00
parent b82fa1f2cc
commit 41f2cf53c6
2 changed files with 10 additions and 6 deletions

View File

@@ -96,7 +96,6 @@ public class MagicSpringDocConfiguration implements MagicPluginConfiguration {
private void createSwaggerProvider(ObjectProvider<RequestMagicDynamicRegistry> requestMagicDynamicRegistryObjectProvider, MagicResourceService magicResourceService, ServletContext servletContext) throws NoSuchMethodException {
Mapping mapping = Mapping.create(requestMappingHandlerMapping);
RequestMappingInfo requestMappingInfo = mapping.paths(springDocConfig.getLocation()).build();
SwaggerEntity.License license = new SwaggerEntity.License("MIT", "https://gitee.com/ssssssss-team/magic-api/blob/master/LICENSE");

View File

@@ -4,10 +4,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.ResponseBody;
import org.ssssssss.magicapi.core.config.MagicConfiguration;
import org.ssssssss.magicapi.core.model.ApiInfo;
import org.ssssssss.magicapi.core.model.BaseDefinition;
import org.ssssssss.magicapi.core.model.DataType;
import org.ssssssss.magicapi.core.model.Path;
import org.ssssssss.magicapi.core.model.*;
import org.ssssssss.magicapi.core.service.MagicResourceService;
import org.ssssssss.magicapi.core.service.impl.RequestMagicDynamicRegistry;
import org.ssssssss.magicapi.utils.JsonUtils;
@@ -73,7 +70,7 @@ public class SwaggerProvider {
swaggerEntity.addSecurity(securityMap);
for (ApiInfo info : infos) {
String groupName = magicResourceService.getGroupName(info.getGroupId()).replace("/", "-");
String groupName = getRootGroupName(info.getGroupId());
String requestPath = PathUtils.replaceSlash(this.prefix + magicResourceService.getGroupPath(info.getGroupId()) + "/" + info.getPath());
SwaggerEntity.Path path = new SwaggerEntity.Path(info.getId());
path.addTag(groupName);
@@ -123,6 +120,14 @@ public class SwaggerProvider {
return swaggerEntity;
}
private String getRootGroupName(String groupId) {
Group group = magicResourceService.getGroup(groupId);
if (!Objects.equals(group.getParentId(), "0")) {
return getRootGroupName(group.getParentId());
}
return group.getName();
}
private List<Map<String, Object>> parseParameters(ApiInfo info) {
List<Map<String, Object>> parameters = new ArrayList<>();
info.getParameters().forEach(it -> parameters.add(SwaggerEntity.createParameter(it.isRequired(), it.getName(), VAR_NAME_QUERY, it.getDataType().getJavascriptType(), it.getDescription(), it.getValue())));