DEV Community

Kami
Kami

Posted on

REST - ESTILO ARQUITETURAL

  1. INTRODUÇÃO As APIs REST surgiram como um tema quente a ser abordado no desenvolvimento de sistemas em aplicações web modernas, bem como em aplicações móveis. Hoje, as integrações de sistemas são muito mais úteis. A seguir, uma visão geral do que é REST, seus princípios, métodos HTTP, incluindo os prós e contras, bem como outras considerações.
  2. O QUE É REST (Transferência de Estado Representacional) O termo REST refere-se ao estilo arquitetônico que é principalmente utilizado na arquitetura como a abordagem para descrever o uso da arquitetura distribuída para incluir a arquitetura baseada em servidor e centrada em aplicações para o desenvolvimento de arquiteturas distribuídas, incluindo suas próprias aplicações web. Este modelo foi apresentado pela primeira vez por Fielding em sua tese de doutorado em 2000, e é considerado como uma base para a comunicação entre cliente e servidor em casos de hipermídia e seus padrões fundamentais são baseados na fundação da abordagem derivada entre serviços Web3 para usar HTTP (FIELDING, 2000). Fielding (2000) postula que REST estabelece restrições arquitetônicas que induzem propriedades do sistema a serem escaláveis, simples e flexíveis entre as peças do sistema. Essas propriedades também contribuíram para a criação do protocolo HTTP como a norma comum para o que é agora conhecido como comunicação global na web. Destaca-se neste cenário que REST possibilita que sistemas interoperem desde o início por meio da interface comum para que a informação possa ser trocada de forma relativamente rápida, desacoplada e escalável (RICHARDSON; RUBY, 2007).
  3. PRINCÍPIOS O estilo arquitetônico REST é fundado nos cinco princípios principais de separação entre cliente e servidor; comunicação sem estado; capacidade de cache; interface uniforme; e hierarquia de uma família de sistemas em camadas. Seguindo esta estrutura arquitetônica, você aprenderá quais são esses princípios e quais as principais restrições que ditam o que é necessário para construir aplicações (FIELDING, 2000). O mesmo protocolo é estabelecido nesta interface para que os componentes do sistema possam se comunicar, e a arquitetura em camadas da aplicação ajuda a organizar a aplicação em camadas verticais, que são chamadas de aplicações em camadas, e isso pode aumentar a flexibilidade e a segurança das aplicações (FIELDING, 2000). A divisão de tarefas sobre a organização (cliente para servidor) permite mais tempo para a manutenção do sistema em sua arquitetura com a ajuda de mantê-lo em sua maturidade (FIELDING, 2000). Mas a natureza sem estado garante que cada uma dessas solicitações seja vista e atendida de forma independente, o que se traduz em melhor escalabilidade e confiabilidade. O cache é útil, uma razão crítica para esse comportamento é que ele serve como um dispositivo de armazenamento temporário para as respostas e reduz a demanda de novas solicitações ao servidor (FIELDING, 2000).
  4. MÉTODOS HTTP REST é baseado em métodos HTTP e define o que você pode realizar em recursos. GET é para buscar qualquer informação e POST é para colocar os dados de entrada em um conjunto de dados brutos. PUT é empregado para modificar os recursos atuais, e DELETE é usado para excluir informações (RICHARDSON; RUBY, 2007). Esses métodos seguem os padrões comuns na Web, tornando fácil compreender e implementar APIs REST.
  5. VANTAGENS Algumas vantagens de um estilo arquitetônico REST são que ele é limpo e fácil de usar, fácil de trabalhar, escalável e pode ser integrado com a maioria dos outros estilos arquitetônicos; e pode ser usado através de padrões web altamente harmonizados. Esses são os atributos que mantêm a popularidade da filosofia de design para desenvolvedores de API e sistemas distribuídos. Para coisas menores, como REST, a simplicidade gera arquiteturas intrincadas também. Como o REST pode ser feito com soluções HTTP estabelecidas, é fácil de aprender. A escalabilidade vem de solicitações sem estado que permitem que o sistema continue funcionando para um grande número de interações, mas não sobrecarregam o servidor. A consistência da interface permite fácil integração entre sistemas (FIELDING, 2000), proporcionando a oportunidade para múltiplas aplicações se comunicarem ao mesmo tempo, facilitando a padronização (FIELDING, 2000). Isso leva a padrões web como HTTP e URI realmente estarem na vanguarda, ajudando as aplicações modernas a continuarem a trabalhar com REST, permitindo interoperabilidade e compatibilidade (RICHARDSON; RUBY, 2007).
  6. DESVANTAGENS Embora esses benefícios sejam apresentados, as características listadas acima fornecem o nível de restrição na arquitetura REST em alguns casos, mesmo nas aplicações (FIELDING, 2000). As principais limitações incluem a ausência de prática padronizada; aumento de solicitações e desafios para modelar operações de ordem superior (RICHARDSON; RUBY, 2007). Na mesma linha, não há uma homogeneização rígida nas práticas para que cada sistema tenha sua própria maneira única de implementar a API REST (RICHARDSON; RUBY, 2007), então a implementação permanece inconsistente pela falta de forte padronização. Como o REST é baseado em múltiplas solicitações para manipulação de recursos (FIELDING, 2000), ocorre um desafio quanto à solicitação ao servidor, devido ao alto número de solicitações, que pode criar um gargalo em certas situações, potencialmente para baixo desempenho. Outra é a limitação para representar operações complexas, bem como as mais simples, como GraphQL, que faz isso através da criação de consultas mais específicas e refinadas (RICHARDSON; RUBY, 2007). Isso leva a uma necessidade de analisar a adoção do REST e análise baseada na complexidade do sistema (FIELDING, 2000).
  7. CONCLUSÃO REST é uma das estratégias mais utilizadas na construção de sistemas distribuídos hoje e, apesar disso, apresenta algumas limitações (FIELDING, 2000). A maioria de seu uso segue de perto sua facilidade de uso, escalabilidade e capacidades de normalização e uso em uma base multiplataforma, o que ajuda a ser utilizado em aplicações unificadas heterogêneas (RICHARDSON; RUBY, 2007). REST é amplamente adotado para comunicação entre sistemas baseados em recursos detectados usando URI com a ajuda das funções do protocolo HTTP que podem ajudar a padronizar e facilitar a interação da aplicação (FIELDING, 2000). É bem conhecido que, independentemente das limitações, REST mantém um impacto importante e cumulativo no mundo do desenvolvimento de software (RICHARDSON; RUBY, 2007).
  8. REFERENCIAS FIELDING, Roy Thomas. Architectural Styles and the Design of Network-Based Software Architectures. 2000. Disponível em: https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm. Acesso em: 20 de abril de 2026. RICHARDSON, Leonard; RUBY, Sam. RESTful Web Services. Sebastopol: O’Reilly Media, 2007. MASSE, Mark. REST API Design Rulebook. Sebastopol: O’Reilly Media, 2011.

Top comments (0)