package drivers // DriverResource 描述驱动的可展示资源(如 logo、显示名等) type DriverResource struct { DBType string `json:"dbType"` Version string `json:"version"` DisplayName string `json:"displayName,omitempty"` // LogoPath 为可通过静态服务器访问的相对路径,例如 "/static/drivers/mysql/v8/logo.png" LogoPath string `json:"logoPath,omitempty"` Extras map[string]string `json:"extras,omitempty"` } var resources = map[string]map[string]DriverResource{} // dbType -> version -> resource // RegisterDriverResource 注册驱动资源信息,通常在驱动 init 中调用。 func RegisterDriverResource(dbType, version string, res DriverResource) { if _, ok := resources[dbType]; !ok { resources[dbType] = map[string]DriverResource{} } resources[dbType][version] = res } // GetDriverResources 返回已注册的驱动资源列表(去平铺) func GetDriverResources() []DriverResource { out := []DriverResource{} for dbt, versions := range resources { for ver, r := range versions { r.DBType = dbt r.Version = ver out = append(out, r) } } return out }