Ver Fonte

🔧 refactor(console): enhance URL validation and restructure settings module

- Refactor api_info.go to console.go for broader console settings support
- Update URL regex pattern to accept both domain names and IP addresses
- Add support for IPv4 addresses with optional port numbers
- Improve validation to handle formats like http://192.168.1.1:8080
- Add ValidateConsoleSettings function for extensible settings validation
- Maintain backward compatibility with existing ValidateApiInfo function
- Add comprehensive comments explaining supported URL formats

Fixes issue where IP-based URLs were incorrectly rejected as invalid format.
Prepares infrastructure for additional console settings validation.
Apple\Apple há 9 meses atrás
pai
commit
d9461a477d
1 ficheiros alterados com 18 adições e 3 exclusões
  1. 18 3
      setting/console.go

+ 18 - 3
setting/api_info.go → setting/console.go

@@ -9,12 +9,22 @@ import (
 	"strings"
 )
 
-// ValidateApiInfo 验证API信息格式
-func ValidateApiInfo(apiInfoStr string) error {
-	if apiInfoStr == "" {
+// ValidateConsoleSettings 验证控制台设置信息格式
+func ValidateConsoleSettings(settingsStr string, settingType string) error {
+	if settingsStr == "" {
 		return nil // 空字符串是合法的
 	}
 	
+	switch settingType {
+	case "ApiInfo":
+		return validateApiInfo(settingsStr)
+	default:
+		return fmt.Errorf("未知的设置类型:%s", settingType)
+	}
+}
+
+// validateApiInfo 验证API信息格式
+func validateApiInfo(apiInfoStr string) error {
 	var apiInfoList []map[string]interface{}
 	if err := json.Unmarshal([]byte(apiInfoStr), &apiInfoList); err != nil {
 		return fmt.Errorf("API信息格式错误:%s", err.Error())
@@ -103,6 +113,11 @@ func ValidateApiInfo(apiInfoStr string) error {
 	return nil
 }
 
+// ValidateApiInfo 保持向后兼容的函数
+func ValidateApiInfo(apiInfoStr string) error {
+	return validateApiInfo(apiInfoStr)
+}
+
 // GetApiInfo 获取API信息列表
 func GetApiInfo() []map[string]interface{} {
 	// 从OptionMap中获取API信息,如果不存在则返回空数组