事实证明,即使我无法在面向用户的网站上找到与此相关的任何文档,也确实存在文档。阅读此内容:https :
//github.com/aws/aws-lambda-
go/blob/master/events/README_ApiGatewayEvent.md
到目前为止,这是我想出的从API GW接收数据并响应请求的最简单方法:
package mainimport ( "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"} pre := 200 response, error := json.Marshal(myReturn{Response:"Hello, " + name.Body}) if error != nil { log.Println(error) response = []byte("Internal Server Error") pre = 500 } return events.APIGatewayProxyResponse {pre, headers, string(response), false}, nil}func main() { lambda.Start(handle)}在这种情况下,该
log.Print("Request body: ", name)行会导致记录准确的请求正文。问题解决了。注意:同样,我也不必
APIGWResponse从问题中创建该对象,这
events.APIGatewayProxyResponse是已经为您完成的完全相同的事情。这些对象都在此类中:https : //github.com/aws/aws-lambda-
go/blob/master/events/apigw.go



