Resources
A JSON API resource is represented through a PHP object of type Enm\JsonApi\Model\Resource\ResourceInterface
and requires at least “type” and “id”.
Enm\JsonApi\Model\Resource\ResourceInterface
:
Method | Return type | Description |
---|---|---|
type() | string | Resource Type Identifier (“type”) |
id() | string | Resource Identifier (“id”) |
attributes() | KeyValueCollection | Attributes of the resource (“attributes”) |
relationships() | RelationshipCollectionInterface | The relationships of a resource (“relationships”) |
links() | LinkCollectionInterface | The links for a resource (“links”) |
metaInformation() | KeyValueCollection | Meta Informations for a resource (“meta”) |
Relationships
A Relationship is represented through a PHP object of type Enm\JsonApi\Model\Resource\Relationship\RelationshipInterface
:
Method | Return type | Description |
---|---|---|
shouldBeHandledAsCollection() | boolean | Indicates if the contained data should be handled as object collection or single object. |
name() | string | The relationship name |
related() | ResourceCollectionInterface | Collection of related resources for this relationship. |
links() | LinkCollectionInterface | Collection of link objects for this relationship. |
metaInformation() | KeyValueCollection | Collection of meta informations for this relationship. |
duplicate(string $name = null) | RelationshipInterface | Helper method to duplicate this relationship, optional with another name. |
A relationship contains, depending on return value of “shouldBeHandledAsCollection”, one or many related resources or can be empty.
A relationship needs a unique name (in context of one resource) and offers access to all related resources via RelationshipInterface::related()
.
Relationships can contain links and meta information like resources.
The relationships of a resource are accessible via ResourceInterface::relationships()
, which is an instance of Enm\JsonApi\Model\Resource\Relationship\RelationshipCollectionInterface
:
Method | Return type | Description |
---|---|---|
all() | array | All relationship objects of this collection. |
count() | int | Number of collection entries. |
isEmpty() | bool | Checks if the collection contains any elements. |
has(string $name) | bool | Checks if the collection contains a special relationship. |
get(string $name) | RelationshipInterface | Returns a relationship by name or throws an \InvalidArgumentException if relationship does not exists. |
set(RelationshipInterface $relationship) | $this | Set a relationship object into the collection. |
remove(string $name) | $this | Remove a relationship by name from the collection. |
removeElement(RelationshipInterface $relationship) | $this | Remove a relationship object from the collection. |
Related Resource Meta Information
If a related resource should contain meta information which should only be accessible in the resource identifier object in the relationship,
your Resource can implement Enm\JsonApi\Model\Resource\Extension\RelatedMetaInformationInterface
and use Enm\JsonApi\Model\Resource\Extension\RelatedMetaInformationTrait
.
back to Entry Point | next: Attributes and Meta |