Resource-centric

In a REST API data entities are expressed as resources (in relational databases they are rows of a table). A resource is anything that is enough important to have its own URL/ID. This could be a File, a Solar feature (Active Region), a Solar event (Flare) or the configuration vector of a neuronal network.

Linked data

Resources contain links to other resources.

API is self-documenting

Users and programs should be able to understand the data from their structure. Like a HTML web page that provides links to other pages, the REST API returns links to related resources. This can be achieved by following the HATEOAS principle.

Nested (embedded) resources vs. flat resources

There is an ongoing debate if resources should contain collections of nested resources or if everything should be kept flat and nested references should be defined by appropriate links.

JSON vs XML

Most big REST API providers (Google, Amazon, Microsoft, Twitter, Facebook, ...) switched from XML to JSON

 

Standards

Unfortunately there is no one-fits-all REST standard yet (despite 15 years of research in this field). But there are a couple of candidate technologies:

JSON does not provide a type model. A couple of standards try to bridge this gap (by providing a so called JSON profile).

References