提交 fc9ee496 编写于 作者: M mxd

修复接口注册时少拼接了前缀的BUG

上级 92864e9f
......@@ -355,7 +355,7 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon
List<Plugin> plugins = pluginConfigurations.stream().map(MagicPluginConfiguration::plugin).collect(Collectors.toList());
// 构建UI请求处理器
String base = properties.getWeb();
Mapping mapping = Mapping.create(requestMappingHandlerMapping, base, properties.getPrefix());
Mapping mapping = Mapping.create(requestMappingHandlerMapping, base);
MagicWorkbenchController magicWorkbenchController = new MagicWorkbenchController(configuration, properties, plugins);
if (base != null) {
configuration.setEnableWeb(true);
......
......@@ -38,13 +38,13 @@ public class MagicDynamicRegistryConfiguration {
@Bean
@ConditionalOnMissingBean
public ApiInfoMagicResourceStorage apiInfoMagicResourceStorage() {
return new ApiInfoMagicResourceStorage();
return new ApiInfoMagicResourceStorage(properties.getPrefix());
}
@Bean
@ConditionalOnMissingBean
public RequestMagicDynamicRegistry magicRequestMagicDynamicRegistry(ApiInfoMagicResourceStorage apiInfoMagicResourceStorage) throws NoSuchMethodException {
return new RequestMagicDynamicRegistry(apiInfoMagicResourceStorage, Mapping.create(requestMappingHandlerMapping, properties.getWeb(), properties.getPrefix()), properties.isAllowOverride());
return new RequestMagicDynamicRegistry(apiInfoMagicResourceStorage, Mapping.create(requestMappingHandlerMapping, properties.getWeb()), properties.isAllowOverride());
}
@Bean
......
package org.ssssssss.magicapi.core.service.impl;
import org.apache.commons.lang3.StringUtils;
import org.ssssssss.magicapi.core.model.ApiInfo;
import org.ssssssss.magicapi.core.service.AbstractPathMagicResourceStorage;
import org.ssssssss.magicapi.utils.PathUtils;
public class ApiInfoMagicResourceStorage extends AbstractPathMagicResourceStorage<ApiInfo> {
private String prefix;
public ApiInfoMagicResourceStorage(String prefix) {
this.prefix = StringUtils.defaultIfBlank(prefix, "") + "/";
}
@Override
public String folder() {
return "api";
......@@ -17,7 +25,7 @@ public class ApiInfoMagicResourceStorage extends AbstractPathMagicResourceStorag
@Override
public String buildMappingKey(ApiInfo info) {
return info.getMethod().toUpperCase() + ":" + buildMappingKey(info, magicResourceService.getGroupPath(info.getGroupId()));
return info.getMethod().toUpperCase() + ":" + PathUtils.replaceSlash(this.prefix + buildMappingKey(info, magicResourceService.getGroupPath(info.getGroupId())));
}
@Override
......
......@@ -21,26 +21,21 @@ public class Mapping {
private final String base;
private final String prefix;
private final RequestMappingInfo.BuilderConfiguration config;
private Map<String, RequestMappingInfo> cached = new HashMap<>();
private static final boolean HAS_GET_PATTERN_PARSER = JavaReflection.getMethod(RequestMappingHandlerMapping.class, "getPatternParser") != null;
private Mapping(AbstractHandlerMethodMapping<RequestMappingInfo> methodMapping, RequestMappingInfo.BuilderConfiguration config, String base, String prefix) {
private Mapping(AbstractHandlerMethodMapping<RequestMappingInfo> methodMapping, RequestMappingInfo.BuilderConfiguration config, String base) {
this.methodMapping = methodMapping;
this.config = config;
this.base = StringUtils.defaultIfBlank(base, "");
this.prefix = StringUtils.defaultIfBlank(prefix, "");
}
public static Mapping create(RequestMappingHandlerMapping mapping) {
return create(mapping, null, null);
return create(mapping, null);
}
public static Mapping create(RequestMappingHandlerMapping mapping, String base, String prefix) {
public static Mapping create(RequestMappingHandlerMapping mapping, String base) {
if (HAS_GET_PATTERN_PARSER) {
RequestMappingInfo.BuilderConfiguration config = new RequestMappingInfo.BuilderConfiguration();
config.setTrailingSlashMatch(mapping.useTrailingSlashMatch());
......@@ -50,9 +45,9 @@ public class Mapping {
} else {
config.setPathMatcher(mapping.getPathMatcher());
}
return new Mapping(mapping, config, base, prefix);
return new Mapping(mapping, config, base);
}
return new Mapping(mapping, null, base, prefix);
return new Mapping(mapping, null, base);
}
public RequestMappingInfo.Builder paths(String ... paths){
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册