Back to Guides

JSON API Requests

Headers:

Fetching Data

A server MUST support fetching resource data for every URL provided as:

Example supported requests

CRUD Actions

Asynchronous Processing

Bulk Operations Extension

JSON API Document Schema

| JSON API object | JSON API properties | Required | ActiveModelSerializers representation | |———————–|—————————————————————————————————-|———-|—————————————| | schema | oneOf (success, failure, info) | | | success | data, included, meta, links, jsonapi | | AM::SerializableResource | success.meta | meta | | AMS::Adapter::Base#meta | success.included | UniqueArray(resource) | | AMS::Adapter::JsonApi#serializable_hash_for_collection | success.data | data | | | success.links | allOf (links, pagination) | | AMS::Adapter::JsonApi#links_for | success.jsonapi | jsonapi | | | failure | errors, meta, jsonapi | errors | AMS::Adapter::JsonApi#failure_document, #1004 | failure.errors | UniqueArray(error) | | AM::S::ErrorSerializer, #1004 | meta | Object | | | data | oneOf (resource, UniqueArray(resource)) | | AMS::Adapter::JsonApi#serializable_hash_for_collection,#serializable_hash_for_single_resource | resource | String(type), String(id),
attributes, relationships,
links, meta | type, id | AM::S::Adapter::JsonApi#primary_data_for | links | Uri(self), Link(related) | | #1028, #1246, #1282 | link | oneOf (linkString, linkObject) | | | link.linkString | Uri | | | link.linkObject | Uri(href), meta | href | | attributes | patternProperties(
“^(?!relationships$|links$)\w
*$"),
any valid JSON | | AM::Serializer#attributes, AMS::Adapter::JsonApi#resource_object_for | relationships | patternProperties(
”^\w
*$");
links, relationships.data, meta | | AMS::Adapter::JsonApi#relationships_for | relationships.data | oneOf (relationshipToOne, relationshipToMany) | | AMS::Adapter::JsonApi#resource_identifier_for | relationshipToOne | anyOf(empty, linkage) | | | relationshipToMany | UniqueArray(linkage) | | | empty | null | | | linkage | String(type), String(id), meta | type, id | AMS::Adapter::JsonApi#primary_data_for | pagination | pageObject(first), pageObject(last),
pageObject(prev), pageObject(next) | | AMS::Adapter::JsonApi::PaginationLinks#serializable_hash | pagination.pageObject | oneOf(Uri, null) | | | jsonapi | String(version), meta | | AMS::Adapter::JsonApi::Jsonapi#as_json | error | String(id), links, String(status),
String(code), String(title),
String(detail), error.source, meta | | AM::S::ErrorSerializer, AMS::Adapter::JsonApi::Error.resource_errors | error.source | String(pointer), String(parameter) | | AMS::Adapter::JsonApi::Error.error_source | pointer | JSON Pointer RFC6901 | | AMS::JsonPointer

The jsonapi.org/schema makes a nice roadmap.

Success Document

Failure Document

Info Document

Definitions