# README
Aliyun api gateway request signature algorithm implemented by go
For signature methods, see: using digital signature authentication to call api
Installation
Download package by using:
$ go get github.com/sliveryou/aliyun-api-gateway-sign
Usage Example
package main
import (
"io/ioutil"
"log"
"net/http"
"net/http/httputil"
"strings"
sign "github.com/sliveryou/aliyun-api-gateway-sign"
)
func main() {
var url string = "https://bankcard4c.shumaidata.com/bankcard4c"
var body string
var appKey, appKeySecret string
// Prepare a HTTP request.
req, err := http.NewRequest(sign.HTTPMethodPost, url, strings.NewReader(body))
if err != nil {
// Handle err.
panic(err)
}
// Set the request with headers.
req.Header.Set(sign.HTTPHeaderAccept, sign.HTTPContentTypeJson)
req.Header.Set(sign.HTTPHeaderContentType, sign.HTTPContentTypeJson)
// Sign the request.
if err := sign.Sign(req, appKey, appKeySecret); err != nil {
panic(err)
}
// Show the dump request.
dumpReq, err := httputil.DumpRequestOut(req, true)
if err != nil {
panic(err)
}
log.Println("\n" + string(dumpReq))
// Do the request.
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
// Handle response.
content, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
log.Println("\n"+string(content), resp.StatusCode, resp.Header.Get("X-Ca-Error-Message"))
}
# Functions
CurrentGMTDate returns the GMT date representation of the current time.
CurrentTimeMillis returns the millisecond representation of the current time.
HmacSHA256 returns the string encrypted with HmacSHA256 method.
MD5 returns the string hashed with MD5 method.
Sign will sign the request with appKey and appKeySecret.
UUID4 returns random generated UUID string.
# Constants
HTTP header content-type values.
HTTP header content-type values.
HTTP header content-type values.
HTTP header content-type values.
HTTP header content-type values.
HTTP header content-type values.
HTTP header content-type values.
HTTP header keys.
HTTP header keys used for Aliyun API gateway signature.
HTTP header keys used for Aliyun API gateway signature.
HTTP header keys used for Aliyun API gateway signature.
HTTP header keys used for Aliyun API gateway signature.
HTTP header keys used for Aliyun API gateway signature.
HTTP header keys used for Aliyun API gateway signature.
HTTP header keys used for Aliyun API gateway signature.
HTTP header keys.
HTTP header keys.
HTTP header keys.
HTTP header keys.
HTTP method values.
HTTP method values.
HTTP method values.
HTTP method values.
HTTP method values.
HTTP method values.
HTTP method values.