Documentation ¶
Overview ¶
Package core provides utility methods that help convert proxy events into an http.Request and http.ResponseWriter
Package core provides utility methods that help convert proxy events into an http.Request and http.ResponseWriter
Package core provides utility methods that help convert proxy events into an http.Request and http.ResponseWriter
Package core provides utility methods that help convert proxy events into an http.Request and http.ResponseWriter
Index ¶
- Constants
- func GatewayTimeout() events.APIGatewayProxyResponse
- func GatewayTimeoutV2() events.APIGatewayV2HTTPResponse
- func GetAPIGatewayContextFromContext(ctx context.Context) (events.APIGatewayProxyRequestContext, bool)
- func GetAPIGatewayV2ContextFromContext(ctx context.Context) (events.APIGatewayV2HTTPRequestContext, bool)
- func GetRuntimeContextFromContext(ctx context.Context) (*lambdacontext.LambdaContext, bool)
- func GetRuntimeContextFromContextV2(ctx context.Context) (*lambdacontext.LambdaContext, bool)
- func GetStageVarsFromContext(ctx context.Context) (map[string]string, bool)
- func GetStageVarsFromContextV2(ctx context.Context) (map[string]string, bool)
- func NewLoggedError(format string, a ...interface{}) error
- type ProxyResponseWriter
- func (r *ProxyResponseWriter) CloseNotify() <-chan bool
- func (r *ProxyResponseWriter) GetProxyResponse() (events.APIGatewayProxyResponse, error)
- func (r *ProxyResponseWriter) Header() http.Header
- func (r *ProxyResponseWriter) Write(body []byte) (int, error)
- func (r *ProxyResponseWriter) WriteHeader(status int)
- type ProxyResponseWriterV2
- func (r *ProxyResponseWriterV2) CloseNotify() <-chan bool
- func (r *ProxyResponseWriterV2) GetProxyResponse() (events.APIGatewayV2HTTPResponse, error)
- func (r *ProxyResponseWriterV2) Header() http.Header
- func (r *ProxyResponseWriterV2) Write(body []byte) (int, error)
- func (r *ProxyResponseWriterV2) WriteHeader(status int)
- type RequestAccessor
- func (r *RequestAccessor) EventToRequest(req events.APIGatewayProxyRequest) (*http.Request, error)
- func (r *RequestAccessor) EventToRequestWithContext(ctx context.Context, req events.APIGatewayProxyRequest) (*http.Request, error)
- func (r *RequestAccessor) GetAPIGatewayContext(req *http.Request) (events.APIGatewayProxyRequestContext, error)
- func (r *RequestAccessor) GetAPIGatewayStageVars(req *http.Request) (map[string]string, error)
- func (r *RequestAccessor) ProxyEventToHTTPRequest(req events.APIGatewayProxyRequest) (*http.Request, error)
- func (r *RequestAccessor) StripBasePath(basePath string) string
- type RequestAccessorV2
- func (r *RequestAccessorV2) EventToRequest(req events.APIGatewayV2HTTPRequest) (*http.Request, error)
- func (r *RequestAccessorV2) EventToRequestWithContext(ctx context.Context, req events.APIGatewayV2HTTPRequest) (*http.Request, error)
- func (r *RequestAccessorV2) GetAPIGatewayContextV2(req *http.Request) (events.APIGatewayV2HTTPRequestContext, error)
- func (r *RequestAccessorV2) GetAPIGatewayStageVars(req *http.Request) (map[string]string, error)
- func (r *RequestAccessorV2) ProxyEventToHTTPRequest(req events.APIGatewayV2HTTPRequest) (*http.Request, error)
- func (r *RequestAccessorV2) StripBasePath(basePath string) string
Constants ¶
const ( // CustomHostVariable is the name of the environment variable that contains // the custom hostname for the request. If this variable is not set the framework // reverts to `RequestContext.DomainName`. The value for a custom host should // include a protocol: http://my-custom.host.com CustomHostVariable = "GO_API_HOST" // APIGwContextHeader is the custom header key used to store the // API Gateway context. To access the Context properties use the // GetAPIGatewayContext method of the RequestAccessor object. APIGwContextHeader = "X-GoLambdaProxy-ApiGw-Context" // APIGwStageVarsHeader is the custom header key used to store the // API Gateway stage variables. To access the stage variable values // use the GetAPIGatewayStageVars method of the RequestAccessor object. APIGwStageVarsHeader = "X-GoLambdaProxy-ApiGw-StageVars" )
Variables ¶
This section is empty.
Functions ¶
func GatewayTimeout ¶
func GatewayTimeout() events.APIGatewayProxyResponse
GatewayTimeout returns a dafault Gateway Timeout (504) response
func GatewayTimeoutV2 ¶ added in v0.11.2
func GatewayTimeoutV2() events.APIGatewayV2HTTPResponse
func GetAPIGatewayContextFromContext ¶ added in v0.3.0
func GetAPIGatewayContextFromContext(ctx context.Context) (events.APIGatewayProxyRequestContext, bool)
GetAPIGatewayContextFromContext retrieve APIGatewayProxyRequestContext from context.Context
func GetAPIGatewayV2ContextFromContext ¶ added in v0.11.2
func GetAPIGatewayV2ContextFromContext(ctx context.Context) (events.APIGatewayV2HTTPRequestContext, bool)
GetAPIGatewayV2ContextFromContext retrieve APIGatewayProxyRequestContext from context.Context
func GetRuntimeContextFromContext ¶ added in v0.3.0
func GetRuntimeContextFromContext(ctx context.Context) (*lambdacontext.LambdaContext, bool)
GetRuntimeContextFromContext retrieve Lambda Runtime Context from context.Context
func GetRuntimeContextFromContextV2 ¶ added in v0.11.2
func GetRuntimeContextFromContextV2(ctx context.Context) (*lambdacontext.LambdaContext, bool)
GetRuntimeContextFromContextV2 retrieve Lambda Runtime Context from context.Context
func GetStageVarsFromContext ¶ added in v0.3.0
GetStageVarsFromContext retrieve stage variables from context
func GetStageVarsFromContextV2 ¶ added in v0.11.2
GetStageVarsFromContextV2 retrieve stage variables from context
func NewLoggedError ¶
NewLoggedError generates a new error and logs it to stdout
Types ¶
type ProxyResponseWriter ¶
type ProxyResponseWriter struct {
// contains filtered or unexported fields
}
ProxyResponseWriter implements http.ResponseWriter and adds the method necessary to return an events.APIGatewayProxyResponse object
func NewProxyResponseWriter ¶
func NewProxyResponseWriter() *ProxyResponseWriter
NewProxyResponseWriter returns a new ProxyResponseWriter object. The object is initialized with an empty map of headers and a status code of -1
func (*ProxyResponseWriter) CloseNotify ¶ added in v0.11.2
func (r *ProxyResponseWriter) CloseNotify() <-chan bool
func (*ProxyResponseWriter) GetProxyResponse ¶
func (r *ProxyResponseWriter) GetProxyResponse() (events.APIGatewayProxyResponse, error)
GetProxyResponse converts the data passed to the response writer into an events.APIGatewayProxyResponse object. Returns a populated proxy response object. If the response is invalid, for example has no headers or an invalid status code returns an error.
func (*ProxyResponseWriter) Header ¶
func (r *ProxyResponseWriter) Header() http.Header
Header implementation from the http.ResponseWriter interface.
func (*ProxyResponseWriter) Write ¶
func (r *ProxyResponseWriter) Write(body []byte) (int, error)
Write sets the response body in the object. If no status code was set before with the WriteHeader method it sets the status for the response to 200 OK.
func (*ProxyResponseWriter) WriteHeader ¶
func (r *ProxyResponseWriter) WriteHeader(status int)
WriteHeader sets a status code for the response. This method is used for error responses.
type ProxyResponseWriterV2 ¶ added in v0.11.2
type ProxyResponseWriterV2 struct {
// contains filtered or unexported fields
}
ProxyResponseWriterV2 implements http.ResponseWriter and adds the method necessary to return an events.APIGatewayProxyResponse object
func NewProxyResponseWriterV2 ¶ added in v0.11.2
func NewProxyResponseWriterV2() *ProxyResponseWriterV2
NewProxyResponseWriter returns a new ProxyResponseWriter object. The object is initialized with an empty map of headers and a status code of -1
func (*ProxyResponseWriterV2) CloseNotify ¶ added in v0.11.2
func (r *ProxyResponseWriterV2) CloseNotify() <-chan bool
func (*ProxyResponseWriterV2) GetProxyResponse ¶ added in v0.11.2
func (r *ProxyResponseWriterV2) GetProxyResponse() (events.APIGatewayV2HTTPResponse, error)
GetProxyResponse converts the data passed to the response writer into an events.APIGatewayProxyResponse object. Returns a populated proxy response object. If the response is invalid, for example has no headers or an invalid status code returns an error.
func (*ProxyResponseWriterV2) Header ¶ added in v0.11.2
func (r *ProxyResponseWriterV2) Header() http.Header
Header implementation from the http.ResponseWriter interface.
func (*ProxyResponseWriterV2) Write ¶ added in v0.11.2
func (r *ProxyResponseWriterV2) Write(body []byte) (int, error)
Write sets the response body in the object. If no status code was set before with the WriteHeader method it sets the status for the response to 200 OK.
func (*ProxyResponseWriterV2) WriteHeader ¶ added in v0.11.2
func (r *ProxyResponseWriterV2) WriteHeader(status int)
WriteHeader sets a status code for the response. This method is used for error responses.
type RequestAccessor ¶
type RequestAccessor struct {
// contains filtered or unexported fields
}
RequestAccessor objects give access to custom API Gateway properties in the request.
func (*RequestAccessor) EventToRequest ¶ added in v0.3.0
func (r *RequestAccessor) EventToRequest(req events.APIGatewayProxyRequest) (*http.Request, error)
EventToRequest converts an API Gateway proxy event into an http.Request object. Returns the populated request maintaining headers
func (*RequestAccessor) EventToRequestWithContext ¶ added in v0.3.0
func (r *RequestAccessor) EventToRequestWithContext(ctx context.Context, req events.APIGatewayProxyRequest) (*http.Request, error)
EventToRequestWithContext converts an API Gateway proxy event and context into an http.Request object. Returns the populated http request with lambda context, stage variables and APIGatewayProxyRequestContext as part of its context. Access those using GetAPIGatewayContextFromContext, GetStageVarsFromContext and GetRuntimeContextFromContext functions in this package.
func (*RequestAccessor) GetAPIGatewayContext ¶
func (r *RequestAccessor) GetAPIGatewayContext(req *http.Request) (events.APIGatewayProxyRequestContext, error)
GetAPIGatewayContext extracts the API Gateway context object from a request's custom header. Returns a populated events.APIGatewayProxyRequestContext object from the request.
func (*RequestAccessor) GetAPIGatewayStageVars ¶
GetAPIGatewayStageVars extracts the API Gateway stage variables from a request's custom header. Returns a map[string]string of the stage variables and their values from the request.
func (*RequestAccessor) ProxyEventToHTTPRequest ¶
func (r *RequestAccessor) ProxyEventToHTTPRequest(req events.APIGatewayProxyRequest) (*http.Request, error)
ProxyEventToHTTPRequest converts an API Gateway proxy event into a http.Request object. Returns the populated http request with additional two custom headers for the stage variables and API Gateway context. To access these properties use the GetAPIGatewayStageVars and GetAPIGatewayContext method of the RequestAccessor object.
func (*RequestAccessor) StripBasePath ¶
func (r *RequestAccessor) StripBasePath(basePath string) string
StripBasePath instructs the RequestAccessor object that the given base path should be removed from the request path before sending it to the framework for routing. This is used when API Gateway is configured with base path mappings in custom domain names.
type RequestAccessorV2 ¶ added in v0.11.2
type RequestAccessorV2 struct {
// contains filtered or unexported fields
}
RequestAccessorV2 objects give access to custom API Gateway properties in the request.
func (*RequestAccessorV2) EventToRequest ¶ added in v0.11.2
func (r *RequestAccessorV2) EventToRequest(req events.APIGatewayV2HTTPRequest) (*http.Request, error)
EventToRequest converts an API Gateway proxy event into an http.Request object. Returns the populated request maintaining headers
func (*RequestAccessorV2) EventToRequestWithContext ¶ added in v0.11.2
func (r *RequestAccessorV2) EventToRequestWithContext(ctx context.Context, req events.APIGatewayV2HTTPRequest) (*http.Request, error)
EventToRequestWithContext converts an API Gateway proxy event and context into an http.Request object. Returns the populated http request with lambda context, stage variables and APIGatewayProxyRequestContext as part of its context. Access those using GetAPIGatewayContextFromContext, GetStageVarsFromContext and GetRuntimeContextFromContext functions in this package.
func (*RequestAccessorV2) GetAPIGatewayContextV2 ¶ added in v0.11.2
func (r *RequestAccessorV2) GetAPIGatewayContextV2(req *http.Request) (events.APIGatewayV2HTTPRequestContext, error)
GetAPIGatewayContextV2 extracts the API Gateway context object from a request's custom header. Returns a populated events.APIGatewayProxyRequestContext object from the request.
func (*RequestAccessorV2) GetAPIGatewayStageVars ¶ added in v0.11.2
GetAPIGatewayStageVars extracts the API Gateway stage variables from a request's custom header. Returns a map[string]string of the stage variables and their values from the request.
func (*RequestAccessorV2) ProxyEventToHTTPRequest ¶ added in v0.11.2
func (r *RequestAccessorV2) ProxyEventToHTTPRequest(req events.APIGatewayV2HTTPRequest) (*http.Request, error)
ProxyEventToHTTPRequest converts an API Gateway proxy event into a http.Request object. Returns the populated http request with additional two custom headers for the stage variables and API Gateway context. To access these properties use the GetAPIGatewayStageVars and GetAPIGatewayContext method of the RequestAccessor object.
func (*RequestAccessorV2) StripBasePath ¶ added in v0.11.2
func (r *RequestAccessorV2) StripBasePath(basePath string) string
StripBasePath instructs the RequestAccessor object that the given base path should be removed from the request path before sending it to the framework for routing. This is used when API Gateway is configured with base path mappings in custom domain names.