@@ -38,6 +38,10 @@ func completeRaliSignParams(request requests.AcsRequest, signer Signer) (err err | |||
request.GetHeaders()["X-Ca-Nonce"] = utils.GetUUID() | |||
request.GetHeaders()["X-Ca-Key"], err = signer.GetAccessKeyId() | |||
if request.GetEnv() != "" { | |||
request.GetHeaders()["X-Ca-Stage"] = request.GetEnv() | |||
} | |||
if request.GetMethod() == requests.POST { | |||
request.GetHeaders()["Content-type"] = requests.Form | |||
} | |||
@@ -93,9 +93,14 @@ func (client *Client) InitWithAccessKey(accessKeyId, accessKeySecret, accessKeyF | |||
return client.InitWithOptions(config, credential) | |||
} | |||
func (client *Client) InitWithAliAppcode(accessKeyId, accessKeySecret string) (err error) { | |||
func (client *Client) InitWithAliAppcode(accessKeyId, accessKeySecret string, env ...string) (err error) { | |||
config := client.InitWithConfig() | |||
credential := credentials.NewAliAppcodeCredential(accessKeyId, accessKeySecret) | |||
if len(env) > 0 { | |||
config.Env = env[0] | |||
} | |||
return client.InitWithOptions(config, credential) | |||
} | |||
@@ -261,8 +266,8 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r | |||
func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer auth.Signer) (httpRequest *http.Request, err error) { | |||
// init param | |||
domain := request.GetDomain() | |||
if strings.Index(domain, ".") < 0 { | |||
domain += defaultDomain | |||
if strings.Index(domain.Default, ".") < 0 { | |||
domain.Default += defaultDomain | |||
request.SetDomain(domain) | |||
} | |||
@@ -270,6 +275,10 @@ func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer | |||
request.SetScheme(client.config.Scheme) | |||
} | |||
if request.GetEnv() == "" && client.config.Env != "" { | |||
request.SetEnv(client.config.Env) | |||
} | |||
err = requests.InitParam(request) | |||
if err != nil { | |||
return | |||
@@ -302,6 +311,7 @@ func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer | |||
if host, isContainsHost := request.GetHeaders()["host"]; isContainsHost { | |||
httpRequest.Host = host | |||
} | |||
userAgent := DefaultUserAgent | |||
httpRequest.Header.Set("User-Agent", userAgent) | |||
@@ -14,6 +14,7 @@ type Config struct { | |||
UserAgent string `default:""` | |||
Scheme string `default:"HTTP"` | |||
Timeout time.Duration `default:"5"` | |||
Env string `default:""` | |||
} | |||
func NewConfig() *Config { | |||
@@ -31,6 +31,6 @@ func (request *CommonRequest) GetStyle() string { | |||
return request.Ontology.GetStyle() | |||
} | |||
func (request *CommonRequest) InitWithApiInfo(domain, version, urlPath string) { | |||
func (request *CommonRequest) InitWithApiInfo(domain Host, version, urlPath string) { | |||
request.Ontology.InitWithApiInfo(domain, version, urlPath) | |||
} |
@@ -41,9 +41,18 @@ const ( | |||
Body = "Body" | |||
Path = "Path" | |||
TEST = "TEST" | |||
PRE = "PRE" | |||
RELEASE = "RELEASE" | |||
HeaderSeparator = "\n" | |||
) | |||
type Host struct { | |||
Default string | |||
Func func(string) string | |||
} | |||
var debug utils.Debug | |||
func init() { | |||
@@ -61,20 +70,23 @@ type AcsRequest interface { | |||
GetFormParams() map[string]string | |||
GetMethod() string | |||
GetScheme() string | |||
GetDomain() string | |||
GetDomain() Host | |||
SetDomain(host Host) | |||
GetActionName() string | |||
GetAcceptFormat() string | |||
GetAccept() string | |||
GetHeaders() map[string]string | |||
GetStyle() string | |||
InitWithApiInfo(domain, version, urlPath string) | |||
InitWithApiInfo(domain Host, version, urlPath string) | |||
GetEnv() string | |||
SetEnv(string) | |||
BuildUrl() string | |||
BuildQueries() string | |||
SetScheme(scheme string) | |||
SetContent(content []byte) | |||
SetDomain(host string) | |||
SetStringToSign(stringToSign string) | |||
GetStringToSign() string | |||
GetBodyReader() io.Reader | |||
@@ -88,11 +100,12 @@ type baseRequest struct { | |||
Scheme string | |||
Method string | |||
Port string | |||
Domain string | |||
Domain Host | |||
From string | |||
ReadTimeout time.Duration | |||
ConnectTimeout time.Duration | |||
isInsecure *bool | |||
Env string | |||
AcceptFormat string | |||
actionName string | |||
@@ -110,6 +123,14 @@ type baseRequest struct { | |||
stringToSign string | |||
} | |||
func (request *baseRequest) GetEnv() string { | |||
return request.Env | |||
} | |||
func (request *baseRequest) SetEnv(e string) { | |||
request.Env = e | |||
} | |||
func (request *baseRequest) GetStringToSign() string { | |||
return request.stringToSign | |||
} | |||
@@ -144,7 +165,7 @@ func (request *baseRequest) SetScheme(scheme string) { | |||
request.Scheme = scheme | |||
} | |||
func (request *baseRequest) SetDomain(host string) { | |||
func (request *baseRequest) SetDomain(host Host) { | |||
request.Domain = host | |||
} | |||
@@ -152,7 +173,7 @@ func (request *baseRequest) GetScheme() string { | |||
return request.Scheme | |||
} | |||
func (request *baseRequest) GetDomain() string { | |||
func (request *baseRequest) GetDomain() Host { | |||
return request.Domain | |||
} | |||
@@ -17,7 +17,15 @@ func (request *RpcRequest) init() { | |||
} | |||
func (request *RpcRequest) BuildUrl() string { | |||
url := fmt.Sprintf("%s://%s", strings.ToLower(request.Scheme), request.Domain) | |||
var hostname string | |||
if request.Domain.Func == nil { | |||
hostname = request.Domain.Default | |||
} else if hostname = request.Domain.Func(request.GetEnv()); hostname == "" { | |||
hostname = request.Domain.Default | |||
} | |||
url := fmt.Sprintf("%s://%s", strings.ToLower(request.Scheme), hostname) | |||
if len(request.Port) > 0 { | |||
url = fmt.Sprintf("%s:%s", url, request.Port) | |||
} | |||
@@ -38,7 +46,7 @@ func (request *RpcRequest) GetActionName() string { | |||
return request.actionName | |||
} | |||
func (request *RpcRequest) InitWithApiInfo(domain, version, urlPath string) { | |||
func (request *RpcRequest) InitWithApiInfo(domain Host, version, urlPath string) { | |||
request.init() | |||
request.SetDomain(domain) | |||
request.version = version | |||
@@ -2,14 +2,26 @@ package jedi | |||
import ( | |||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk" | |||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" | |||
"strings" | |||
) | |||
const ( | |||
HOST = "jedi.oapi.gaore.com" | |||
VERSION = "2020-08-04" | |||
VERSION = "2020-09-24" | |||
) | |||
var HOST requests.Host = requests.Host{ | |||
Default: "jedi.api.gaore.com", | |||
Func: func(s string) string { | |||
var a = map[string]string{ | |||
requests.RELEASE: "jedi.api.gaore.com", | |||
requests.PRE: "jedi.api.gaore.com", | |||
requests.TEST: "jedi.oapi.gaore.com", | |||
} | |||
return a[s] | |||
}, | |||
} | |||
type Client struct { | |||
sdk.Client | |||
} | |||
@@ -35,8 +47,8 @@ func NewClientWithAccessKey(accesskey, secrect, source string) (client *Client, | |||
return | |||
} | |||
func NewClientWithAliAppcode(accesskey, secrect string) (client *Client, err error) { | |||
func NewClientWithAliAppcode(accesskey, secrect string, env ...string) (client *Client, err error) { | |||
client = &Client{} | |||
err = client.InitWithAliAppcode(accesskey, secrect) | |||
err = client.InitWithAliAppcode(accesskey, secrect, env...) | |||
return | |||
} |
@@ -1,12 +1,18 @@ | |||
package sso | |||
import "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk" | |||
import ( | |||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk" | |||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" | |||
) | |||
const ( | |||
HOST = "sso" | |||
VERSION = "2020-08-07" | |||
) | |||
var HOST = requests.Host{ | |||
Default: "sso", | |||
} | |||
type Client struct { | |||
sdk.Client | |||
} | |||