Tree Pattern
Trees represent real-world structures like directories, navigations, org charts and other hierarchies. Relationships bind the nodes of a tree together and give them context with the other nodes.
The Nodes in a tree have one parent
link to their parent Node as well as a top
link to the Tree. Top-level Nodes, those that are direct children of Tree, do not have a parent
link. Nodes that have no child
links are considered leaves.
Tree Resource
profile: <https://level3.rest/patterns/tree#tree-resource>
The Tree resource presents either the Home or Nexus profile and it can choose to support the DELETE
operation. The node resources in the tree are also deleted. For instance, if the tree represents a file system, then deleting the Tree resource also deletes the child file and directory resources because the individual files have no context to exist outside of their directory.
The Tree resource shares the child
relationship with Node resource.
Node Resource
profile: <https://level3.rest/patterns/tree#node-resource>
A Node resource has no required profile. If the node’s profile supports the DELETE
operation, a client can remove the node from the tree by deleting the node. This operation deletes all child
nodes and their children as well.
top
rel="https://level3.rest/patterns/tree#top"
The top
link points to the Tree of which the node is a member.
child
rel="https://level3.rest/patterns/tree#child"
Tree and Node resources have 0 or more child
links pointing to direct child Node resources. The ordering of the links is intentional, meaning they should be considered the sibling order. HTTP header sequence rules ensure the client can rely on this order to be consistent with the resource’s ordering intentions.
parent
rel="https://level3.rest/patterns/tree#parent"
The parent
link points to the node’s parent Node.
Specifications
HTTP/1.1 Message Syntax and Routing: RFC 7230
- Header Field Order: section 3.2.2
© 2019-2023 Matt Bishop
This work is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.