representational state transfer (REST) architectural style

  • independent of programming languages on client and server

Design Principles

  • uniform interface
    • All API requests for the same resource should look the same
  • client-server decoupling
  • statelessness
    • each request needs to include all the information necessary for processing it
    • no server side sessions
  • cacheability
    • When possible, resources should be cacheable on the client or server side.
  • layered system architecture
    • don’t assume that the client, and server applications connect directly to each other
    • need to be designed so that neither the client nor the server can tell whether it communicates with the end application or an intermediary.