Struct jsonapi::api::JsonApiDocument [] [src]

pub struct JsonApiDocument {
    pub data: Option<PrimaryData>,
    pub included: Option<Resources>,
    pub links: Option<Links>,
    pub meta: Option<Meta>,
    pub errors: Option<JsonApiErrors>,
    pub jsonapi: Option<JsonApiInfo>,
}

The specification refers to this as a top-level document

Fields

Methods

impl JsonApiDocument
[src]

Top-level JSON-API Document

This function returns false if the JsonApiDocument contains any violations of the specification. See DocumentValidationError

The spec dictates that the document must have least one of data, errors or meta. Of these, data and errors must not co-exist. The optional field included may only be present if the data field is present too.

use jsonapi::api::{JsonApiDocument, PrimaryData, JsonApiErrors};
let doc = JsonApiDocument {
    data: Some(PrimaryData::None),
    errors: Some(JsonApiErrors::new()),
    ..Default::default()
};

assert_eq!(doc.is_valid(), false);

This function returns a Vec with identified specification violations enumerated in DocumentValidationError

use jsonapi::api::{JsonApiDocument, PrimaryData, JsonApiErrors, DocumentValidationError};

let doc = JsonApiDocument {
    data: Some(PrimaryData::None),
    errors: Some(JsonApiErrors::new()),
    ..Default::default()
};

match doc.validate() {
  Some(errors) => {
    assert!(
      errors.contains(
        &DocumentValidationError::DataWithErrors
      )
    )
  }
  None => assert!(false)
}

Instantiate from string

use jsonapi::api::JsonApiDocument;

let serialized = r#"{
  "data" : [
    { "id":"1", "type":"post", "attributes":{}, "relationships":{}, "links" :{} },
    { "id":"2", "type":"post", "attributes":{}, "relationships":{}, "links" :{} },
    { "id":"3", "type":"post", "attributes":{}, "relationships":{}, "links" :{} }
  ]
}"#;
let doc = JsonApiDocument::from_str(&serialized);
assert_eq!(doc.is_ok(), true);

Trait Implementations

impl Debug for JsonApiDocument
[src]

Formats the value using the given formatter.

impl Clone for JsonApiDocument
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl PartialEq for JsonApiDocument
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Default for JsonApiDocument
[src]

Returns the "default value" for a type. Read more