Skip to content

mirecl/lambda-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crates.io License

PROPOSAL API (lambda_server)

use anyhow::Result;
use lambda_server::{Http, Context};
use serde::{Serialize, Deserialize};
use validator::{Validate, ValidationError};

#[derive(Deserialize, Debug, Validate)]
struct Request {
    #[validate(range(min = 1))]
    pub price: i32,
    #[validate(range(min = 1))]
    pub quantity: i32,
}

#[derive(Serialize, Debug)]
struct Response {
    pub amount: i32,
}

fn handler(ctx: Context, req: Request) -> Result<Response> {
    req.validate()?;

    let amount = req.price * req.quantity;
    Ok(Response{ amount })
}

#[tokio::main]
async fn main() -> Result<()> {
    Http::run(handler).await?;
    Ok(())
}

About

Experimental lambda runtime

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages