Categorygithub.com/sliveryou/aliyun-api-gateway-sign
modulepackage
1.0.5
Repository: https://github.com/sliveryou/aliyun-api-gateway-sign.git
Documentation: pkg.go.dev

# README

Aliyun api gateway request signature algorithm implemented by go

English简体中文

Github License Go Doc Go Report Github Latest Release Github Latest Tag Github Stars

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.