#api-gateway

lambda-apigateway-response

Response object for AWS Lambda with API Gateway

2 releases

0.1.1 Jun 2, 2022
0.1.0 Jun 2, 2022

#46 in #api-gateway

MIT/Apache

13KB
55 lines

lambda-apigateway-response   Crates Badge Docs Badge License: Apache License: MIT

A response object for aws-lambda-rust-runtime, when the lambda function integrated into API Gateway.

Example

use lambda_apigateway_response::{
    http::StatusCode,
    types::{
        Headers,
        MultiValueHeaders,
    },
    Response,
};
use lambda_runtime::{
    Error as LambdaError,
    LambdaEvent,
};
use serde_json::json;

type LambdaResult<T> = Result<T, LambdaError>;

async fn handler(
    _event: LambdaEvent<serde_json::Value>,
) -> LambdaResult<Response<serde_json::Value>> {
    let res = Response {
        status_code: StatusCode::OK,
        body: json!({
            "message": "Hello world!",
        }),
        headers: Headers::new(),
        multi_value_headers: MultiValueHeaders::new(),
        is_base64_encoded: true,
    };

    Ok(res)
}

#[tokio::main]
async fn main() -> LambdaResult<()> {
    let handler_fn = lambda_runtime::service_fn(handler);
    lambda_runtime::run(handler_fn).await?;

    Ok(())
}

Dependencies

~6–13MB
~151K SLoC