About this API
This application programming interface (API) is designed to be RESTful, meaning that various items such as exercises, users, and diary entries—collectively known as resources—can be created, retrieved, updated, and deleted using HTTP methods. Efforts have been made to use and adhere to web standards and best practices, to ensure a consistent API experience across clients and platforms.
Using a RESTful approach means several things:
● a clean separation of client from server: clients are not concerned with the mechanisms used by the server to store, fetch and maintain data, and servers are not concerned with the mechanisms used by clients to interact with their users. ● stateless context: no client context is stored on the server between requests, and any session state is the client's responsibility. ● a uniform interface: resources are identified with universal resource identifiers (URIs). ● representation of resources: resources are conceptually distinct from the representations contained in requests and responses. (A server does not send a database row to a client, but a representation of that database row, perhaps in JSON or XML.) ● idempotence: submitting a request multiple times does not change the result beyond the first one. ● atomic batch requests: where batch operations are supported, such as the creation of multiple objects with a single request, the request must either fully complete or have no net effect. This includes validation, such that if one object in the request fails validation, the request fails for all objects in the request.
Requests to this API use the following HTTP methods:
● GET: retrieval of resources ● POST: creation of a resource ● DELETE: deleting a resource ● PATCH: updating a resource. The specification for the PATCH method (see: RFC 5789) states: The PATCH method requests that a set of changes described in the request entity be applied to the resource identified by the RequestURI. This API defines "a set of changes" as the properties present in the request body of a resource representation. This means that performing a PATCH on a resource updates only the properties contained in the body of the request. The absence of a property from the body of a PATCH request means that property must not be changed by the request, with the exception of automatic properties, such as lastupdatedtime.