refactor(项目设置): 优化环境http配置参数
This commit is contained in:
parent
1cc659f0e9
commit
174d2f00d2
|
@ -2,7 +2,7 @@ package io.metersphere.project.api.assertion;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||||
import io.metersphere.project.api.KeyValueParam;
|
import io.metersphere.project.api.KeyValueParam;
|
||||||
import io.metersphere.project.api.processor.ScriptProcessor;
|
import io.metersphere.project.constants.ScriptLanguageType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -21,7 +21,7 @@ public class MsScriptAssertion extends MsAssertion {
|
||||||
private String script;
|
private String script;
|
||||||
/**
|
/**
|
||||||
* 脚本语言
|
* 脚本语言
|
||||||
* @see ScriptProcessor.ScriptLanguageType
|
* {@link ScriptLanguageType}
|
||||||
*/
|
*/
|
||||||
private String scriptLanguage;
|
private String scriptLanguage;
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
package io.metersphere.project.dto.environment;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class KeyValue {
|
|
||||||
@Schema(description = "参数名")
|
|
||||||
private String name;
|
|
||||||
@Schema(description = "参数值")
|
|
||||||
private String value;
|
|
||||||
@Schema(description = "是否启用")
|
|
||||||
private Boolean enable = true;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,36 +1,54 @@
|
||||||
package io.metersphere.project.dto.environment.http;
|
package io.metersphere.project.dto.environment.http;
|
||||||
|
|
||||||
|
|
||||||
import io.metersphere.project.dto.environment.KeyValue;
|
|
||||||
import io.metersphere.project.api.KeyValueEnableParam;
|
import io.metersphere.project.api.KeyValueEnableParam;
|
||||||
|
import io.metersphere.system.valid.EnumValue;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class HttpConfig implements Serializable {
|
public class HttpConfig implements Serializable {
|
||||||
@Schema(description = "环境域名")
|
|
||||||
private String url;
|
|
||||||
@Schema(description = "启用条件 NONE/MODULE/PATH")
|
|
||||||
private String type = "NONE";
|
|
||||||
@Schema(description = "启用条件为PATH时,需要填写的路径/ key为equal时,value为路径,key为contain时,value为包含的路径")
|
|
||||||
private List<KeyValue> details;
|
|
||||||
@Schema(description = "启用条件为MODULE时,需要模块的id")
|
|
||||||
private List<String> moduleIds;
|
|
||||||
@Schema(description = "请求头")
|
|
||||||
private List<KeyValueEnableParam> headers;
|
|
||||||
@Schema(description = "浏览器 选项为chrome/firefox")
|
|
||||||
private String browser;
|
|
||||||
private String description;
|
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
public HttpConfig() {
|
@Schema(description = "环境域名")
|
||||||
this.headers = List.of(new KeyValueEnableParam());
|
private String url;
|
||||||
}
|
/**
|
||||||
|
* 启用条件
|
||||||
|
* {@link HttpConfigMatchType}
|
||||||
|
*/
|
||||||
|
@Schema(description = "启用条件 NONE/MODULE/PATH")
|
||||||
|
@EnumValue(enumClass = HttpConfigMatchType.class)
|
||||||
|
private String type = HttpConfigMatchType.NONE.name();
|
||||||
|
@Valid
|
||||||
|
@Schema(description = "路径匹配规则")
|
||||||
|
private HttpConfigPathMatchRule pathMatchRule = new HttpConfigPathMatchRule();
|
||||||
|
@Valid
|
||||||
|
@Schema(description = "模块匹配规则")
|
||||||
|
private HttpConfigModuleMatchRule moduleMatchRule = new HttpConfigModuleMatchRule();
|
||||||
|
@Schema(description = "请求头")
|
||||||
|
private List<@Valid KeyValueEnableParam> headers = new ArrayList<>(0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用条件匹配类型
|
||||||
|
*/
|
||||||
|
public enum HttpConfigMatchType {
|
||||||
|
/**
|
||||||
|
* 路径匹配
|
||||||
|
*/
|
||||||
|
PATH,
|
||||||
|
/**
|
||||||
|
* 模块匹配
|
||||||
|
*/
|
||||||
|
MODULE,
|
||||||
|
/**
|
||||||
|
* 无条件
|
||||||
|
*/
|
||||||
|
NONE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
package io.metersphere.project.dto.environment.http;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: jianxing
|
||||||
|
* @CreateTime: 2024-02-05 18:53
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class HttpConfigModuleMatchRule implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Schema(description = "选中模块")
|
||||||
|
@Valid
|
||||||
|
private List<SelectModule> modules = new ArrayList<>(0);
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SelectModule {
|
||||||
|
@Schema(description = "模块ID")
|
||||||
|
private String moduleId;
|
||||||
|
@Schema(description = "是否包含新增子模块")
|
||||||
|
private Boolean containChildModule = false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
package io.metersphere.project.dto.environment.http;
|
||||||
|
|
||||||
|
import io.metersphere.system.valid.EnumValue;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: jianxing
|
||||||
|
* @CreateTime: 2024-02-05 18:53
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class HttpConfigPathMatchRule implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 匹配规则 CONTAINS/EQUALS
|
||||||
|
* {@link MatchRuleCondition}
|
||||||
|
*/
|
||||||
|
@Schema(description = "匹配条件 CONTAINS/EQUALS")
|
||||||
|
@EnumValue(enumClass = MatchRuleCondition.class)
|
||||||
|
private String condition;
|
||||||
|
@Schema(description = "路径")
|
||||||
|
private String path;
|
||||||
|
|
||||||
|
public enum MatchRuleCondition {
|
||||||
|
/**
|
||||||
|
* 包含
|
||||||
|
*/
|
||||||
|
CONTAINS,
|
||||||
|
/**
|
||||||
|
* 等于
|
||||||
|
*/
|
||||||
|
EQUALS
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue