Spring Data HAL Resource Structure is a JSON Structure definition published by Spring Data.
{
"name": "Spring Data HAL Resource Structure",
"description": "Structural documentation of HAL+JSON resources as returned by Spring Data REST",
"version": "4.3.0",
"structures": [
{
"name": "HalResource",
"description": "A single HAL resource entity",
"fields": [
{ "name": "_links", "type": "object", "description": "Hypermedia links", "required": true },
{ "name": "_links.self", "type": "object", "description": "Self link for this resource", "required": true },
{ "name": "_links.self.href", "type": "string", "description": "URI of this resource" },
{ "name": "_embedded", "type": "object", "description": "Embedded related resources (on collection responses)" }
]
},
{
"name": "PagedCollection",
"description": "A paginated collection of HAL resources",
"fields": [
{ "name": "_embedded", "type": "object", "description": "Embedded resource arrays keyed by relation", "required": true },
{ "name": "_links", "type": "object", "description": "Navigation links (self, first, prev, next, last)", "required": true },
{ "name": "page", "type": "object", "description": "Pagination metadata", "required": true },
{ "name": "page.size", "type": "integer", "description": "Items per page" },
{ "name": "page.totalElements", "type": "integer", "description": "Total items across all pages" },
{ "name": "page.totalPages", "type": "integer", "description": "Total number of pages" },
{ "name": "page.number", "type": "integer", "description": "Current page (zero-based)" }
]
},
{
"name": "SearchResults",
"description": "Search endpoint link listing",
"fields": [
{ "name": "_links", "type": "object", "description": "Links to exposed search methods" },
{ "name": "_links.self.href", "type": "string", "description": "Search resource URI" }
]
}
]
}