Struct graphql_client::Error
source · pub struct Error {
pub message: String,
pub locations: Option<Vec<Location>>,
pub path: Option<Vec<PathFragment>>,
pub extensions: Option<HashMap<String, Value>>,
}
Expand description
An element in the top-level errors
array of a response body.
This tries to be as close to the spec as possible.
use graphql_client::*;
let body: Response<ResponseData> = serde_json::from_value(json!({
"data": null,
"errors": [
{
"message": "The server crashed. Sorry.",
"locations": [{ "line": 1, "column": 1 }]
},
{
"message": "Seismic activity detected",
"path": ["underground", 20]
},
],
}))?;
let expected: Response<ResponseData> = Response {
data: None,
errors: Some(vec![
Error {
message: "The server crashed. Sorry.".to_owned(),
locations: Some(vec![
Location {
line: 1,
column: 1,
}
]),
path: None,
extensions: None,
},
Error {
message: "Seismic activity detected".to_owned(),
locations: None,
path: Some(vec![
PathFragment::Key("underground".into()),
PathFragment::Index(20),
]),
extensions: None,
},
]),
extensions: None,
};
assert_eq!(body, expected);
Fields§
§message: String
The human-readable error message. This is the only required field.
locations: Option<Vec<Location>>
Which locations in the query the error applies to.
path: Option<Vec<PathFragment>>
Which path in the query the error applies to, e.g. ["users", 0, "email"]
.
extensions: Option<HashMap<String, Value>>
Additional errors. Their exact format is defined by the server.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Error
impl<'de> Deserialize<'de> for Error
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more