# RESTful [[api|API]] Everything is a resource (noun) instead of action (verb) -- different from [[rpc|RPC]]. > [!QUOTE] > > REST provides a set of architectural constraints that, when applied as a > whole, emphasizes scalability of component interactions, generality of > interfaces, independent deployment of components, and intermediary components > to reduce interaction latency, enforce security, and encapsulate legacy > systems. -- the REST dissertation - Architectural properties: Performance, Scalability, Simplicity, Modifiability, Visibility, Portability, Reliability. > [!summary] Six Guiding Principles > > - Uniform Interface > - Client-Server > - Stateless > - Cacheable > - Layered System > - Code on Demand (optional) ## Resources - [REST API Tutorial](https://restfulapi.net/) - [Naming Convention](https://restfulapi.net/resource-naming/) - [What is a REST API? | RedHat](https://redhat.com/en/topics/api/what-is-a-rest-api) - [What is a REST API? | IBM](https://ibm.com/think/topics/rest-apis)