1 回答
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
事實(shí)證明,即使我無法在面向用戶的網(wǎng)站上找到任何關(guān)于此的文檔,文檔也確實(shí)存在。閱讀: https: //github.com/aws/aws-lambda-go/blob/master/events/README_ApiGatewayEvent.md
這是迄今為止我想出的從 API GW 接收數(shù)據(jù)和響應(yīng)請求的最簡單方法:
package main
import (
"context"
"encoding/json"
"github.com/aws/aws-lambda-go/lambda"
"github.com/aws/aws-lambda-go/events"
"log"
)
type myReturn struct {
Response string `json:"response"`
}
func handle(ctx context.Context, name events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
log.Print("Request body: ", name)
log.Print("context ", ctx)
headers := map[string]string{"Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept"}
code := 200
response, error := json.Marshal(myReturn{Response:"Hello, " + name.Body})
if error != nil {
log.Println(error)
response = []byte("Internal Server Error")
code = 500
}
return events.APIGatewayProxyResponse {code, headers, string(response), false}, nil
}
func main() {
lambda.Start(handle)
}
在這種情況下,該log.Print("Request body: ", name)行會(huì)記錄準(zhǔn)確的請求正文。問題解決了。
注意:我也不必APIGWResponse從問題中創(chuàng)建那個(gè)對象,這events.APIGatewayProxyResponse是完全一樣的東西,已經(jīng)為你做了。這些對象都在這個(gè)類里面: https: //github.com/aws/aws-lambda-go/blob/master/events/apigw.go
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)
