in lambda-http/src/ext.rs [248:271]
fn payload<D>(&self) -> Result<Option<D>, PayloadError>
where
for<'de> D: Deserialize<'de>,
{
self.headers()
.get(http::header::CONTENT_TYPE)
.map(|ct| match ct.to_str() {
Ok(content_type) => {
if content_type.starts_with("application/x-www-form-urlencoded") {
return serde_urlencoded::from_bytes::<D>(self.body().as_ref())
.map_err(PayloadError::WwwFormUrlEncoded)
.map(Some);
} else if content_type.starts_with("application/json") {
return serde_json::from_slice::<D>(self.body().as_ref())
.map_err(PayloadError::Json)
.map(Some);
}
Ok(None)
}
_ => Ok(None),
})
.unwrap_or_else(|| Ok(None))
}