canic_core/dto/
http.rs

1use crate::dto::prelude::*;
2
3///
4/// HttpRequestArgs
5///
6
7#[derive(CandidType, Clone, Debug, Deserialize, Serialize)]
8pub struct HttpRequestArgs {
9    pub url: String,
10    pub max_response_bytes: Option<u64>,
11    pub method: HttpMethod,
12    pub headers: Vec<HttpHeader>,
13    pub body: Option<Vec<u8>>,
14    pub is_replicated: Option<bool>,
15}
16
17///
18/// HttpRequestResult
19///
20
21#[derive(CandidType, Clone, Debug, Deserialize, Serialize)]
22pub struct HttpRequestResult {
23    pub status: Nat,
24    pub headers: Vec<HttpHeader>,
25    #[serde(with = "serde_bytes")]
26    pub body: Vec<u8>,
27}
28
29///
30/// HttpMethod
31///
32
33#[derive(CandidType, Clone, Copy, Debug, Deserialize, Serialize)]
34pub enum HttpMethod {
35    #[serde(rename = "get")]
36    GET,
37    #[serde(rename = "post")]
38    POST,
39    #[serde(rename = "head")]
40    HEAD,
41}
42
43///
44/// HttpHeader
45///
46
47#[derive(CandidType, Clone, Debug, Deserialize, Serialize)]
48pub struct HttpHeader {
49    pub name: String,
50    pub value: String,
51}