cloudevents/binding/reqwest/mod.rs
1//! This module integrates the [cloudevents-sdk](https://docs.rs/cloudevents-sdk) with [reqwest](https://docs.rs/reqwest/) to easily send and receive CloudEvents.
2//!
3//! ```
4//! # use reqwest_lib as reqwest;
5//! use cloudevents::binding::reqwest::{RequestBuilderExt, ResponseExt};
6//! use cloudevents::{EventBuilderV10, EventBuilder};
7//! use serde_json::json;
8//!
9//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
10//! let client = reqwest::Client::new();
11//!
12//! // Prepare the event to send
13//! let event_to_send = EventBuilderV10::new()
14//! .id("0001")
15//! .ty("example.test")
16//! .source("http://localhost/")
17//! .data("application/json", json!({"hello": "world"}))
18//! .build()?;
19//!
20//! // Send request
21//! let response = client.post("http://localhost")
22//! .event(event_to_send)?
23//! .send().await?;
24//! // Parse response as event
25//! let received_event = response
26//! .into_event().await?;
27//! # Ok(())
28//! # }
29//! ```
30
31#![deny(rustdoc::broken_intra_doc_links)]
32
33mod client_request;
34mod client_response;
35
36pub use client_request::event_to_request;
37pub use client_request::RequestBuilderExt;
38pub use client_request::RequestSerializer;
39pub use client_response::response_to_event;
40pub use client_response::ResponseExt;