Crates.io | srvrls |
lib.rs | srvrls |
version | 0.1.7 |
source | src |
created_at | 2020-04-05 01:56:30.735061 |
updated_at | 2020-04-10 14:50:40.681001 |
description | A lightweight, opinionated serverless framework reducing boilerplate |
homepage | |
repository | https://github.com/serverlesstechnology/srvrls |
max_upload_size | |
id | 226468 |
size | 49,113 |
A lightweight wrapper for using AWS Lambda as an API Gateway proxy.
Srvrls is available from Crates.io or Github.
[dependencies]
srvrls = "0.1.7"
Or for a specific branch
[dependencies]
srvrls = { git = "https://github.com/serverlesstechnology/srvrls.git", branch = "master"}
We built this library to simplify building applications that use AWS API Gateway as a proxy for AWS Lambda.
This library has opinions, strong ones, very possibly not your own. Our design priorities here are simple:
In short this wrapper turns this
impl Handler<ApiGatewayProxyRequest, ApiGatewayProxyResponse, HandlerError> for App {
fn run(&mut self, event: ApiGatewayProxyRequest, _ctx: Context) -> Result<ApiGatewayProxyResponse, HandlerError> {
match some_function(event) {
Ok(response) => {
ApiGatewayProxyResponse {
status_code: 200,
headers: hashmap!(String::from("Content-Type") => String::from("application/json")),
multi_value_headers: HashMap::new(),
body: Some(response),
is_base64_encoded: None,
}
},
Err(e) => {
ApiGatewayProxyResponse {
status_code: 400,
headers: hashmap!(String::from("Content-Type") => String::from("application/json")),
multi_value_headers: HashMap::new(),
body: Some(e.message),
is_base64_encoded: None,
}
}
}
}
}
into this
impl SrvrlsApplication for App {
fn handle(&mut self, event: SrvrlsRequest) -> Result<SrvrlsResponse, SrvrlsError> {
let response = some_function(event)?;
Ok(SrvrlsResponse::ok(response))
}
}