Agenzia per l'Italia Digital & Team per la trasformazione digital (Italian administration)
Global designGeneral considerations on API design
|
GovernanceHow to ensure API governance (advertise, consistency, …) |
AsynchronicityHow to handle long operations
|
CollectionWhat is a collection (set) of resources
|
Data formatwhich data format use |
Standards dataWhich standard use for values like languages, countries, currencies, … |
ErrorsHow to handle errors |
HTTP methodsGeneral information about HTTP methods usage
|
GETThe GET method requests a representation of the specified resource. Requests using GET should only retrieve data and should have no other effect.
|
HEADThe HEAD method asks for a response identical to that of a GET request, but without the response body. This is useful for retrieving meta-information written in response headers, without having to transport the entire content.
|
PATCHThe PATCH method applies partial modifications to a resource. |
PUTThe PUT method requests that the enclosed entity be stored under the supplied URI. If the URI refers to an already existing resource, it is modified; if the URI does not point to an existing resource, then the server can create the resource with that URI.
|
POSTThe POST method requests that the server accept the entity enclosed in the request as a new subordinate of the web resource identified by the URI. The data POSTed might be, for example, an annotation for existing resources; a message for a bulletin board, newsgroup, mailing list, or comment thread; a block of data that is the result of submitting a web form to a data-handling process; or an item to add to a database.
|
DELETEThe DELETE method deletes the specified resource.
|
CachingHow to use and provide relevant caching informations
|
Content negociation and media typesHow to describe your API data format and/or propose different formats (like json, yaml, xml atom, …) |
HTTP StatusesGeneral information about HTTP statuses usage |
200 OKStandard response for successful HTTP requests. The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request, the response will contain an entity describing or containing the result of the action. |
201 CreatedThe request has been fulfilled, resulting in the creation of a new resource. |
204 No ContentThe server successfully processed the request and is not returning any content. |
404 Not FoundThe requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible. |
405 Method Not AllowedA request method is not supported for the requested resource; for example, a GET request on a form which requires data to be presented via POST, or a PUT request on a read-only resource. |
409 ConflictIndicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates. |
415 Unsupported Media TypeThe request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format. |
422 Unprocessable EntityThe request was well-formed but was unable to be followed due to semantic errors.
|
HypermediaHow to use hypermedia
|
DocumentationHow to produce and/or propose API documentation
|
Performance and bandwidthHow to deal with high traffic or consumers with low bandwith |
CaseWhich case (lowercase, camelCase, …) to use and when
|
NamingHow to name things |
ResourceGeneral informations about resources
|
Retrieve resource partiallyHow to retrieve partially a resource
|
Retrieve resourceHow to retrieve a resource |
Create resourceHow to create resources |
Update resourceHow to update a resource |
Delete resourceHow to delete resources |
SecuritySecurity concerns
|