-
Platform independence. Any client should be able to call the API, regardless of how the API is implemented internally. This requires using standard protocols, and having a mechanism whereby the client and the web service can agree on the format of the data to exchange.
-
Service evolution. The web API should be able to evolve and add functionality independently from client applications. As the API evolves, existing client applications should continue to function without modification. All functionality should be discoverable so that client applications can fully use it.
Representational State Transfer (REST)
resource has an identifier
which is a URI that uniquely identifies that resource.
https://adventure-works.com/orders/1
The most common operations are GET, POST, PUT, PATCH, and DELETE.
resource URIs should be based on nouns (the resource) and not verbs (the operations on the resource).
https://adventure-works.com/orders // Good
chatty web APIs expose a large number of small resources,its a bad thing because all web requests impose a load on the web server. The more requests, the bigger the load.
A successful GET method typically returns HTTP status code 200 (OK).
If the resource cannot be found, the method should return 404 (Not Found).
it returns HTTP status code 201 (Created).
the web server should respond with HTTP status code 204 (No Content).