HATEOAS API: Difference between revisions

From Delft Solutions
Jump to navigation Jump to search
No edit summary
No edit summary
Line 10: Line 10:
* [[Content Negotiation]] to [[Backward Compatibility | support older clients]] and [[Internationalization | give users localized versions of resources]].
* [[Content Negotiation]] to [[Backward Compatibility | support older clients]] and [[Internationalization | give users localized versions of resources]].
* Conditional PUTs to add [[Optimistic Concurrency]].
* Conditional PUTs to add [[Optimistic Concurrency]].
== Comparison ==
{| class="wikitable sortable"
|-
! Method
!! style="writing-mode: vertical-rl;" | Browser Accessible
!! style="writing-mode: vertical-rl;" | Backward Compatible
!! style="writing-mode: vertical-rl;" | Backward Compatible (default)
!! style="writing-mode: vertical-rl;" | HTTP Cachable
!! style="writing-mode: vertical-rl;" | No URL Construction
!! style="writing-mode: vertical-rl;" | URL as Identifier
!! style="writing-mode: vertical-rl;" | Stable Pagination
|-
| HATEOAS || ? || Yes || ? || Yes || Yes || Yes || ?
|-
| [https://github.com/XPBytes/media_types-serialization media_types-serialization] (HATEOAS) || Yes || Yes || Yes || Yes || Yes || Yes || Yes
|-
| [https://docs.github.com/en/free-pro-team@latest/rest/overview/resources-in-the-rest-api Github] (REST) || Yes || Yes || No || No || Yes || Yes || Yes
|-
| [https://opensource.zalando.com/restful-api-guidelines/#114 Zalando] || No || Yes || Yes || No || No || ? || Yes
|}


[[Category: Terminology]]
[[Category: Terminology]]

Revision as of 09:39, 14 January 2021

Originally called REST, HATEOAS is a way of designing HTTP APIs as described in Roy Fieldings thesis. The acronym stands for Hypermedia as the Engine of Application State.

It distinguishes itself from other APIs by having the following properties:

HATEOAS APIs usually make heavy use of HTTP features like:

Comparison

Method Browser Accessible Backward Compatible Backward Compatible (default) HTTP Cachable No URL Construction URL as Identifier Stable Pagination
HATEOAS ? Yes ? Yes Yes Yes ?
media_types-serialization (HATEOAS) Yes Yes Yes Yes Yes Yes Yes
Github (REST) Yes Yes No No Yes Yes Yes
Zalando No Yes Yes No No ? Yes