package managesdk import ( "errors" "git.sxidc.com/go-tools/api_binding/http_binding/response" "git.sxidc.com/go-tools/utils/http_client" "time" ) var timeoutDuration = TimeoutSec * time.Second var baseUrl string var httpClient *http_client.Client const ( TimeoutSec = 30 servicePrefix = "/api/v1" ) func Destroy() { if httpClient == nil { return } http_client.Destroy(httpClient) httpClient = nil } func Init(configBaseUrl string, serviceType ServiceType) error { var defaultBaseURL string switch serviceType { case ServiceTypePerson: defaultBaseURL = DefaultPersonBaseURL case ServiceTypeResource: defaultBaseURL = DefaultResourceBaseURL case ServiceTypeActivity: defaultBaseURL = DefaultActivityBaseURL case ServiceTypePlan: defaultBaseURL = DefaultPlanBaseURL default: defaultBaseURL = DefaultPersonBaseURL } if configBaseUrl != "" { baseUrl = configBaseUrl + servicePrefix } else { baseUrl = defaultBaseURL + servicePrefix } if httpClient == nil { httpClient = http_client.New() } return nil } func getVersion() (map[string]any, error) { getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)). Get(baseUrl + "/version") if err != nil { return nil, err } resp := new(response.InfoResponse[map[string]any]) err = getResponse.Json(resp) if err != nil { return nil, err } if !resp.Success { return nil, errors.New(resp.Msg) } return resp.Info, nil }