sdk-rust/example-projects/actix-web-example/src/main.rs

42 lines
1011 B
Rust

use actix_web::{get, post, App, HttpServer};
use cloudevents::{Event, EventBuilder, EventBuilderV10};
use serde_json::json;
#[post("/")]
async fn post_event(event: Event) -> Event {
println!("Received Event: {:?}", event);
event
}
#[get("/")]
async fn get_event() -> Event {
let payload = json!({"hello": "world"});
EventBuilderV10::new()
.id("0001")
.ty("example.test")
.source("http://localhost/")
.data("application/json", payload)
.extension("someint", "10")
.build()
.unwrap()
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
std::env::set_var("RUST_LOG", "actix_server=info,actix_web=info");
env_logger::init();
HttpServer::new(|| {
App::new()
.wrap(actix_cors::Cors::permissive())
.wrap(actix_web::middleware::Logger::default())
.service(post_event)
.service(get_event)
})
.bind("127.0.0.1:9000")?
.workers(1)
.run()
.await
}