1 回答

TA貢獻1809條經驗 獲得超8個贊
事實證明,即使我無法在面向用戶的網站上找到任何關于此的文檔,文檔也確實存在。閱讀: https: //github.com/aws/aws-lambda-go/blob/master/events/README_ApiGatewayEvent.md
這是迄今為止我想出的從 API GW 接收數據和響應請求的最簡單方法:
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)行會記錄準確的請求正文。問題解決了。
注意:我也不必APIGWResponse從問題中創建那個對象,這events.APIGatewayProxyResponse是完全一樣的東西,已經為你做了。這些對象都在這個類里面: https: //github.com/aws/aws-lambda-go/blob/master/events/apigw.go
- 1 回答
- 0 關注
- 107 瀏覽
添加回答
舉報