修复import其它接口时需要携带magic-api.prefix的问题
This commit is contained in:
parent
bdf7c1928c
commit
3b952d76ce
@ -44,7 +44,7 @@ public class MagicDynamicRegistryConfiguration {
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public RequestMagicDynamicRegistry magicRequestMagicDynamicRegistry(ApiInfoMagicResourceStorage apiInfoMagicResourceStorage) throws NoSuchMethodException {
|
||||
return new RequestMagicDynamicRegistry(apiInfoMagicResourceStorage, Mapping.create(requestMappingHandlerMapping, properties.getWeb()), properties.isAllowOverride());
|
||||
return new RequestMagicDynamicRegistry(apiInfoMagicResourceStorage, Mapping.create(requestMappingHandlerMapping, properties.getWeb()), properties.isAllowOverride(), properties.getPrefix());
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@ -9,7 +9,7 @@ import java.util.Objects;
|
||||
|
||||
public class ApiInfoMagicResourceStorage extends AbstractPathMagicResourceStorage<ApiInfo> {
|
||||
|
||||
private String prefix;
|
||||
private final String prefix;
|
||||
|
||||
public ApiInfoMagicResourceStorage(String prefix) {
|
||||
this.prefix = StringUtils.defaultIfBlank(prefix, "") + "/";
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.ssssssss.magicapi.core.service.impl;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.event.EventListener;
|
||||
@ -15,6 +16,7 @@ import org.ssssssss.magicapi.core.model.ApiInfo;
|
||||
import org.ssssssss.magicapi.core.service.AbstractMagicDynamicRegistry;
|
||||
import org.ssssssss.magicapi.core.service.MagicResourceStorage;
|
||||
import org.ssssssss.magicapi.utils.Mapping;
|
||||
import org.ssssssss.magicapi.utils.PathUtils;
|
||||
import org.ssssssss.magicapi.utils.ScriptManager;
|
||||
import org.ssssssss.script.MagicResourceLoader;
|
||||
import org.ssssssss.script.MagicScriptContext;
|
||||
@ -43,10 +45,13 @@ public class RequestMagicDynamicRegistry extends AbstractMagicDynamicRegistry<Ap
|
||||
|
||||
private final boolean allowOverride;
|
||||
|
||||
public RequestMagicDynamicRegistry(MagicResourceStorage<ApiInfo> magicResourceStorage, Mapping mapping, boolean allowOverride) throws NoSuchMethodException {
|
||||
private final String prefix;
|
||||
|
||||
public RequestMagicDynamicRegistry(MagicResourceStorage<ApiInfo> magicResourceStorage, Mapping mapping, boolean allowOverride, String prefix) throws NoSuchMethodException {
|
||||
super(magicResourceStorage);
|
||||
this.mapping = mapping;
|
||||
this.allowOverride = allowOverride;
|
||||
this.prefix = StringUtils.defaultIfBlank(prefix, "") + "/";
|
||||
MagicResourceLoader.addFunctionLoader(this::lookupLambdaFunction);
|
||||
}
|
||||
|
||||
@ -55,7 +60,7 @@ public class RequestMagicDynamicRegistry extends AbstractMagicDynamicRegistry<Ap
|
||||
if (index > -1) {
|
||||
String method = name.substring(0, index);
|
||||
String path = name.substring(index + 1);
|
||||
ApiInfo info = getMapping(method.toUpperCase() + ":" + path);
|
||||
ApiInfo info = getMapping(method.toUpperCase() + ":" + PathUtils.replaceSlash(this.prefix + path));
|
||||
if (info != null) {
|
||||
String scriptName = MagicConfiguration.getMagicResourceService().getScriptName(info);
|
||||
return (MagicScriptLambdaFunction) (variables, args) -> {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user