[英]HTTP Post API request using go lang with aws secrets manager header
I am able to fetch the secrets from AWS secrets manager and using this secrets (ex: {"x-api-key":"123456789qwertyuiop"}) as an header, I want to call an API, I am new to golang and can anyone help me on this?我能够从 AWS 机密管理器获取机密并使用此机密(例如:{"x-api-key":"123456789qwertyuiop"})作为 header,我想调用 API,我是新来的 golang 和有人帮我吗?
My code example我的代码示例
func fetch_api() {
?? How to call an POST API with below header??
// I get header secrets from below func getsecrets in above mentioned example
secret, _ := getsecrets("MyAPISecrets")
fmt.Println(secret)
}
func getsecrets(s string) (string, error) {
// Create a session
mySession, err := session.NewSession(&aws.Config{
Region: aws.String(os.Getenv("REGION"))},
)
if err != nil {
log.Fatal(err)
}
svc := secretsmanager.New(mySession)
result, err := svc.GetSecretValue(&secretsmanager.GetSecretValueInput{SecretId: &s})
if err != nil {
log.Fatal(err.Error())
}
return *result.SecretString, nil
}
func main() {
lambda.Start(fetch_api)
}
You can modify this code, it is just an example您可以修改此代码,它只是一个示例
func fetch_api() {
// I get header secrets from below func getsecrets in above mentioned example
secret, _ := getsecrets("MyAPISecrets")
fmt.Println(secret)
client := &http.Client{}
// create POST request
req, err := http.NewRequest("POST", url, body)))
if err != nil {
panic(err)
}
// set content-type header
req.Header.Set("Content-Type", "application/json")
// set x-api-key header
req.Header.Set("x-api-key", secret)
// send request
resp, err := client.Do(req)
if err != nil {
panic(err)
}
// print response
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.