REST API
REST APIs utilizam métodos HTTP para gerenciar recursos identificados por URIs, permitindo web services escaláveis e flexíveis.
REST APIs modelam aplicações como uma coleção de recursos identificados por URIs únicas. Clientes interagem com esses recursos usando um conjunto fixo de operações, comumente mapeadas para métodos HTTP (GET, POST, PUT, PATCH, DELETE). As principais constraints incluem: statelessness (sem contexto de cliente no lado do servidor entre requisições), uma uniform interface (métodos, URIs e media types padronizados), client–server separation, cacheability e um layered system. Representações (tipicamente JSON ou XML) são transferidas sobre HTTP, e content negotiation, versioning e HATEOAS (opcionalmente) guiam as interações do cliente. REST é um architectural style, não um protocol, e embora se alinhe bem com a web, o design RESTful prático requer o balanceamento entre over-fetching, under-fetching e preocupações de segurança como authentication, authorization e transport security (TLS).
graph LR
Center["REST API"]:::main
Pre_http["http"]:::pre --> Center
click Pre_http "/terms/http"
Pre_api["api"]:::pre --> Center
click Pre_api "/terms/api"
Rel_apache_http_server["apache-http-server"]:::related -.-> Center
click Rel_apache_http_server "/terms/apache-http-server"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explique como se eu tivesse 5 anos
Como uma máquina de vendas: você escolhe um item e o recebe. A máquina não lembra de você depois.
🤓 Expert Deep Dive
Baseado na dissertação de Roy Fielding. Suporta hierarquia em camadas e cache para otimização.