#[non_exhaustive]pub struct Request {
pub id: String,
pub method: String,
pub headers: HashMap<String, String>,
pub path: String,
pub host: String,
pub scheme: String,
pub query: String,
pub time: Option<Timestamp>,
pub size: i64,
pub protocol: String,
pub reason: String,
pub auth: Option<Auth>,
/* private fields */
}Expand description
This message defines attributes for an HTTP request. If the actual request is not an HTTP request, the runtime system should try to map the actual request to an equivalent HTTP request.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.id: StringThe unique ID for a request, which can be propagated to downstream systems. The ID should have low probability of collision within a single day for a specific service.
method: StringThe HTTP request method, such as GET, POST.
headers: HashMap<String, String>The HTTP request headers. If multiple headers share the same key, they must be merged according to the HTTP spec. All header keys must be lowercased, because HTTP header keys are case-insensitive.
path: StringThe HTTP URL path, excluding the query parameters.
host: StringThe HTTP request Host header value.
scheme: StringThe HTTP URL scheme, such as http and https.
query: StringThe HTTP URL query in the format of name1=value1&name2=value2, as it
appears in the first line of the HTTP request. No decoding is performed.
time: Option<Timestamp>The timestamp when the destination service receives the last byte of
the request.
size: i64The HTTP request size in bytes. If unknown, it must be -1.
protocol: StringThe network protocol used with the request, such as “http/1.1”, “spdy/3”, “h2”, “h2c”, “webrtc”, “tcp”, “udp”, “quic”. See https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for details.
reason: StringA special parameter for request reason. It is used by security systems to associate auditing information with a request.
auth: Option<Auth>The request authentication. May be absent for unauthenticated requests.
Derived from the HTTP request Authorization header or equivalent.
Implementations§
Source§impl Request
impl Request
pub fn new() -> Self
Sourcepub fn set_method<T: Into<String>>(self, v: T) -> Self
pub fn set_method<T: Into<String>>(self, v: T) -> Self
Sets the value of method.
Sourcepub fn set_headers<T, K, V>(self, v: T) -> Self
pub fn set_headers<T, K, V>(self, v: T) -> Self
Sets the value of headers.
Sourcepub fn set_scheme<T: Into<String>>(self, v: T) -> Self
pub fn set_scheme<T: Into<String>>(self, v: T) -> Self
Sets the value of scheme.
Sourcepub fn set_or_clear_time<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_time<T>(self, v: Option<T>) -> Self
Sets or clears the value of time.
Sourcepub fn set_protocol<T: Into<String>>(self, v: T) -> Self
pub fn set_protocol<T: Into<String>>(self, v: T) -> Self
Sets the value of protocol.
Sourcepub fn set_reason<T: Into<String>>(self, v: T) -> Self
pub fn set_reason<T: Into<String>>(self, v: T) -> Self
Sets the value of reason.