cloudevents_sdk_reqwest/
lib.rs

1//! This crate 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 cloudevents_sdk_reqwest::{RequestBuilderExt, ResponseExt};
5//! use cloudevents::{EventBuilderV10, EventBuilder};
6//! use serde_json::json;
7//!
8//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
9//! let client = reqwest::Client::new();
10//!
11//! // Prepare the event to send
12//! let event_to_send = EventBuilderV10::new()
13//!     .id("0001")
14//!     .ty("example.test")
15//!     .source("http://localhost/")
16//!     .data("application/json", json!({"hello": "world"}))
17//!     .build()?;
18//!
19//! // Send request
20//! let response = client.post("http://localhost")
21//!   .event(event_to_send)?
22//!   .send().await?;
23//! // Parse response as event
24//! let received_event = response
25//!   .into_event().await?;
26//! # Ok(())
27//! # }
28//! ```
29//!
30//! Check out the [cloudevents-sdk](https://docs.rs/cloudevents-sdk) docs for more details on how to use [`cloudevents::Event`].
31
32#![doc(html_root_url = "https://docs.rs/cloudevents-sdk-reqwest/0.3.1")]
33#![deny(broken_intra_doc_links)]
34
35#[macro_use]
36mod headers;
37mod client_request;
38mod client_response;
39
40pub use client_request::event_to_request;
41pub use client_request::RequestBuilderExt;
42pub use client_request::RequestSerializer;
43pub use client_response::response_to_event;
44pub use client_response::ResponseDeserializer;
45pub use client_response::ResponseExt;