nouns (resources): api.example.io/users • Calling the endpoint acts on the resource: GET api.example.io/users/123 POST api.example.io/users/123 • Typically returns the resource that was acted upon RPC (Remote Procedure Call) • Endpoints are verbs (methods): api.example.io/getUser • Calling the endpoint calls the method: GET api.example.io/getUser POST api.example.io/updateUser • Returns the result of the function call
/createAccount POST /update?accountId=17 GET /findAccount?lastname=Skywalker GET /accounts GET /accounts/17 POST /accounts POST /accounts/17 GET /accounts?lastname=Skywalker
exchange should be treated as if the client were a web browser No documentation or out-of-band info needed GET wikipedia.org <html> <a href="en.wikipedia.org">English</a> <a href="es.wikipedia.org">Español</a> <a href="de.wikipedia.org">Deutsch</a> <form action="/login" method="POST"> <input name="username"> <input type="password" name="password"> </form> </html>