package client import ( "fmt" "net/url" ) const ( executeRawSqlUrl = "/ds/api/v1/sql/rawSql/execute" executeSqlUrl = "/ds/api/v1/sql/execute" ) func (c *Client) ExecuteRawSql(token string, baseUrl string, namespace string, dataSource string, sql string, executeParams map[string]any) ([]map[string]any, error) { fullUrl, err := url.JoinPath(baseUrl, executeRawSqlUrl) if err != nil { return nil, err } resp := new(struct { Success bool `json:"success"` Msg string `json:"msg"` Results []map[string]any `json:"results"` }) err = c.post(token, fullUrl, map[string]any{ "namespace": namespace, "dataSource": dataSource, "sql": sql, "executeParams": executeParams, }, resp) if err != nil { return nil, err } if !resp.Success { return nil, fmt.Errorf(resp.Msg) } return resp.Results, nil } func (c *Client) ExecuteSql(token string, baseUrl string, namespace string, dataSource string, name string, executeParams map[string]any) ([]map[string]any, error) { fullUrl, err := url.JoinPath(baseUrl, executeSqlUrl) if err != nil { return nil, err } resp := new(struct { Success bool `json:"success"` Msg string `json:"msg"` Results []map[string]any `json:"results"` }) err = c.post(token, fullUrl, map[string]any{ "namespace": namespace, "dataSource": dataSource, "name": name, "executeParams": executeParams, }, resp) if err != nil { return nil, err } if !resp.Success { return nil, fmt.Errorf(resp.Msg) } return resp.Results, nil }