lib.rs 1000 B

12345678910111213141516171819202122232425262728293031323334353637
  1. //! HTTP client abstraction for CDK
  2. //!
  3. //! This crate provides an HTTP client wrapper that abstracts the underlying HTTP library (reqwest).
  4. //! Using this crate allows other CDK crates to avoid direct dependencies on reqwest.
  5. //!
  6. //! # Example
  7. //!
  8. //! ```no_run
  9. //! use cdk_http_client::{HttpClient, Response};
  10. //! use serde::Deserialize;
  11. //!
  12. //! #[derive(Deserialize)]
  13. //! struct ApiResponse {
  14. //! message: String,
  15. //! }
  16. //!
  17. //! async fn example() -> Response<ApiResponse> {
  18. //! let client = HttpClient::new();
  19. //! client.fetch("https://api.example.com/data").await
  20. //! }
  21. //! ```
  22. mod backends;
  23. mod client;
  24. mod error;
  25. mod request;
  26. mod request_builder_ext;
  27. mod response;
  28. #[cfg(feature = "bitreq")]
  29. pub use backends::BitreqRequestBuilder;
  30. #[cfg(feature = "reqwest")]
  31. pub use backends::ReqwestRequestBuilder;
  32. pub use client::{fetch, HttpClient, HttpClientBuilder};
  33. pub use error::HttpError;
  34. pub use request::{RequestBuilder, RequestBuilderExt};
  35. pub use response::{RawResponse, Response};