in transport/http/middleware_http_logging.go [28:75]
func (r *RequestResponseLogger) HandleDeserialize(
ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler,
) (
out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
logger := middleware.GetLogger(ctx)
if r.LogRequest || r.LogRequestWithBody {
smithyRequest, ok := in.Request.(*Request)
if !ok {
return out, metadata, fmt.Errorf("unknown transport type %T", in)
}
rc := smithyRequest.Build(ctx)
reqBytes, err := httputil.DumpRequestOut(rc, r.LogRequestWithBody)
if err != nil {
return out, metadata, err
}
logger.Logf(logging.Debug, "Request\n%v", string(reqBytes))
if r.LogRequestWithBody {
smithyRequest, err = smithyRequest.SetStream(rc.Body)
if err != nil {
return out, metadata, err
}
in.Request = smithyRequest
}
}
out, metadata, err = next.HandleDeserialize(ctx, in)
if (err == nil) && (r.LogResponse || r.LogResponseWithBody) {
smithyResponse, ok := out.RawResponse.(*Response)
if !ok {
return out, metadata, fmt.Errorf("unknown transport type %T", out.RawResponse)
}
respBytes, err := httputil.DumpResponse(smithyResponse.Response, r.LogResponseWithBody)
if err != nil {
return out, metadata, fmt.Errorf("failed to dump response %w", err)
}
logger.Logf(logging.Debug, "Response\n%v", string(respBytes))
}
return out, metadata, err
}