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.

🔗 Termos relacionados

Pré-requisitos:

📚 Fontes