调用API示例
- 在工程中引入sdk(signer.go)。
import "apig-sdk/go/core"
- 生成一个新的Signer,输入AppKey和AppSecret。
s := core.Signer{ Key: "4f5f626b-073f-402f-a1e0-e52171c6100c", Secret: "******", }
- 生成一个新的Request,指定域名、方法名、请求url、query和body。
r, _ := http.NewRequest("POST", "http:/c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/api?a=1&b=2", ioutil.NopCloser(bytes.NewBuffer([]byte("foo=bar"))))
- 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。其中所访问API的ID为必填项,需要填入具体的ID信息,示例代码如“x-api-id”作为样例。
r.Header.Add("x-stage", "RELEASE") r.Header.Add("x-api-id","*******")
- 进行签名,执行此函数会在请求中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。
s.Sign(r) authorization := r.Header.Get("Authorization") r.Header.Add("x-Authorization", authorization)
- 访问API,查看访问结果。
resp, err := http.DefaultClient.Do(r) body, err := ioutil.ReadAll(resp.Body)