Struct relay_event_schema::protocol::Request
source · pub struct Request {Show 13 fields
pub url: Annotated<String>,
pub method: Annotated<String>,
pub protocol: Annotated<String>,
pub data: Annotated<Value>,
pub query_string: Annotated<Query>,
pub fragment: Annotated<String>,
pub cookies: Annotated<Cookies>,
pub headers: Annotated<Headers>,
pub body_size: Annotated<u64>,
pub env: Annotated<Object<Value>>,
pub inferred_content_type: Annotated<String>,
pub api_target: Annotated<String>,
pub other: Object<Value>,
}
Expand description
Http request information.
The Request interface contains information on a HTTP request related to the event. In client SDKs, this can be an outgoing request, or the request that rendered the current web page. On server SDKs, this could be the incoming web request that is being handled.
The data variable should only contain the request body (not the query string). It can either be a dictionary (for standard HTTP requests) or a raw request body.
§Ordered Maps
In the Request interface, several attributes can either be declared as string, object, or list of tuples. Sentry attempts to parse structured information from the string representation in such cases.
Sometimes, keys can be declared multiple times, or the order of elements matters. In such cases, use the tuple representation over a plain object.
Example of request headers as object:
{
"content-type": "application/json",
"accept": "application/json, application/xml"
}
Example of the same headers as list of tuples:
[
["content-type", "application/json"],
["accept", "application/json"],
["accept", "application/xml"]
]
Example of a fully populated request object:
{
"request": {
"method": "POST",
"url": "http://absolute.uri/foo",
"query_string": "query=foobar&page=2",
"data": {
"foo": "bar"
},
"cookies": "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;",
"headers": {
"content-type": "text/html"
},
"env": {
"REMOTE_ADDR": "192.168.0.1"
}
}
}
Fields§
§url: Annotated<String>
The URL of the request if available.
The query string can be declared either as part of the url
, or separately in query_string
.
method: Annotated<String>
HTTP request method.
protocol: Annotated<String>
HTTP protocol.
data: Annotated<Value>
Request data in any format that makes sense.
SDKs should discard large and binary bodies by default. Can be given as a string or structural data of any format.
query_string: Annotated<Query>
The query string component of the URL.
Can be given as unparsed string, dictionary, or list of tuples.
If the query string is not declared and part of the url
, Sentry moves it to the
query string.
fragment: Annotated<String>
The fragment of the request URI.
The cookie values.
Can be given unparsed as string, as dictionary, or as a list of tuples.
headers: Annotated<Headers>
A dictionary of submitted headers.
If a header appears multiple times it, needs to be merged according to the HTTP standard for header merging. Header names are treated case-insensitively by Sentry.
body_size: Annotated<u64>
HTTP request body size.
env: Annotated<Object<Value>>
Server environment data, such as CGI/WSGI.
A dictionary containing environment information passed from the server. This is where information such as CGI/WSGI/Rack keys go that are not HTTP headers.
Sentry will explicitly look for REMOTE_ADDR
to extract an IP address.
inferred_content_type: Annotated<String>
The inferred content type of the request payload.
api_target: Annotated<String>
The API target/specification that made the request.
Values can be graphql
, rest
, etc.
The data field should contain the request and response bodies based on its target specification.
This information can be used for better data scrubbing and normalization.
other: Object<Value>
Additional arbitrary fields for forwards compatibility.
Trait Implementations§
source§impl FromValue for Request
impl FromValue for Request
source§fn from_value(__value: Annotated<Value>) -> Annotated<Self>
fn from_value(__value: Annotated<Value>) -> Annotated<Self>
source§impl IntoValue for Request
impl IntoValue for Request
source§fn into_value(self) -> Value
fn into_value(self) -> Value
source§fn serialize_payload<S>(
&self,
__serializer: S,
__behavior: SkipSerialization,
) -> Result<S::Ok, S::Error>where
Self: Sized,
S: Serializer,
fn serialize_payload<S>(
&self,
__serializer: S,
__behavior: SkipSerialization,
) -> Result<S::Ok, S::Error>where
Self: Sized,
S: Serializer,
source§fn extract_child_meta(&self) -> MetaMapwhere
Self: Sized,
fn extract_child_meta(&self) -> MetaMapwhere
Self: Sized,
§fn extract_meta_tree(value: &Annotated<Self>) -> MetaTreewhere
Self: Sized,
fn extract_meta_tree(value: &Annotated<Self>) -> MetaTreewhere
Self: Sized,
source§impl ProcessValue for Request
impl ProcessValue for Request
source§fn value_type(&self) -> EnumSet<ValueType>
fn value_type(&self) -> EnumSet<ValueType>
source§fn process_value<P>(
&mut self,
__meta: &mut Meta,
__processor: &mut P,
__state: &ProcessingState<'_>,
) -> ProcessingResultwhere
P: Processor,
fn process_value<P>(
&mut self,
__meta: &mut Meta,
__processor: &mut P,
__state: &ProcessingState<'_>,
) -> ProcessingResultwhere
P: Processor,
source§fn process_child_values<P>(
&mut self,
__processor: &mut P,
__state: &ProcessingState<'_>,
) -> ProcessingResultwhere
P: Processor,
fn process_child_values<P>(
&mut self,
__processor: &mut P,
__state: &ProcessingState<'_>,
) -> ProcessingResultwhere
P: Processor,
impl StructuralPartialEq for Request
Auto Trait Implementations§
impl Freeze for Request
impl RefUnwindSafe for Request
impl Send for Request
impl Sync for Request
impl Unpin for Request
impl UnwindSafe for Request
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)