42 lines
1011 B
Rust
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
|
|
}
|