Haufe
Global designGeneral considerations on API design |
GovernanceHow to ensure API governance (advertise, consistency, …) |
Updates and VersioningHow to handle API updates and versioning |
FilteringHow to select some resources in a collection |
PaginationHow to retrieve a range of resources in a collection |
Retrieve a collectionHow to get a collection or resources |
Sorting a collectionHow to sort a collection of resources |
CollectionWhat is a collection (set) of resources |
Standards dataWhich standard use for values like languages, countries, currencies, … |
Date and TimeHow to deal with date and time data |
Data formatwhich data format use |
ErrorsHow to handle errors |
Error formatHow to provide information about errors |
DELETEThe DELETE method deletes the specified resource. |
GETThe GET method requests a representation of the specified resource. Requests using GET should only retrieve data and should have no other effect. |
PATCHThe PATCH method applies partial modifications to a resource. |
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. |
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. |
HTTP methodsGeneral information about HTTP methods usage |
CachingHow to use and provide relevant caching informations |
HTTP HeadersHow to use standard or custom HTTP headers |
HTTP StatusesGeneral information about HTTP statuses usage |
304 Not ModifiedIndicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy. |
500 Internal Server ErrorA generic error message, given when an unexpected condition was encountered and no more specific message is suitable. |
501 Not ImplementedThe server either does not recognize the request method, or it lacks the ability to fulfill the request. Usually this implies future availability (e.g., a new feature of a web-service API). |
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. |
400 Bad RequestThe server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, too large size, invalid request message framing, or deceptive request routing). |
401 UnauthorizedSimilar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. |
403 ForbiddenThe request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource. |
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. |
406 Not AcceptableThe requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. |
408 Request TimeoutThe server timed out waiting for the request. According to HTTP specifications: The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time. |
409 ConflictIndicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates. |
410 GoneIndicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future. Clients such as search engines should remove the resource from their indices. Most use cases do not require clients and search engines to purge the resource, and a 404 Not Found may be used instead. |
411 Length RequiredThe request did not specify the length of its content, which is required by the requested resource. |
412 Precondition FailedThe server does not meet one of the preconditions that the requester put on the request. |
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. |
Hypermedia (read)How to use hypermedia to read data |
HypermediaHow to use hypermedia |
Developer experienceHow to take care of developer experience (DX) |
DocumentationHow to produce and/or propose API documentation |
NamingHow to name things |
Create resource with a specific IDHow to create resource with a provided id |
Create resourceHow to create resources |
Delete resourceHow to delete resources |
Resource IDWhat is a resource ID and/or how it’s built |
RelationshipsHow to define and use relations between resources |
Replace resourceHow to replace (or update fully) a resource |
Retrieve resource partiallyHow to retrieve partially a resource |
Retrieve resourceHow to retrieve a resource |
Resource's stateHow to change a resource’s state/status (like processed/sent/paid/…) |
Update resource partiallyHow to udate partially a resource |
Update resourceHow to update a resource |
URL formatHow to design URLs |
ResourceGeneral informations about resources |
SecuritySecurity concerns |
Data privacyData privacy concerns |