Quais são os inconvenientes de usar as APIs RESTful?
REST é uma abordagem arquitetônica e significa que um sistema RESTful tem as seguintes propriedades:
- É cliente/servidor: a lógica do negócio é desacoplada da apresentação. Assim você pode mudar uma sem impactar a outra. Os contras, ele adiciona latência insignificante, mas quem se importa, a web é a plataforma e tudo é cliente/servidor.
- li> É stateless: Todas as mensagens trocadas entre cliente e servidor têm todo o contexto necessário para saber o que fazer com a mensagem. Esta visibilidade tem vários benefícios: você pode encaminhar uma mensagem para onde quiser, dependendo do seu conteúdo e qualquer servidor pode atender a um pedido. Assim, basta escalar o seu servidor, criando várias instâncias do mesmo. Você não precisa de enviar todas as mensagens do mesmo cliente ou utilizador para o mesmo servidor. E se você quiser super ajustar o backend, você pode rotear mensagens para servidores diferentes, dependendo da mensagem. Por exemplo, ter uma requisição intensiva de CPU para um servidor e uma requisição intensiva de memória para outro. Os contras: o cliente está a enviar todas as mensagens com informação redundante. Isto adiciona largura de banda e novamente, latência negligenciável.
- É cacheável, então se você estava preocupado com a latência você salva as respostas de cache de largura de banda do servidor.
- Tem uma interface uniforme baseada em hipermídia (você sabe, aquela coisa do HATEOAS). O melhor disto é que você pode melhorar muito a desacoplamento entre cliente e servidor. Se as respostas do servidor contêm hipermídia para todos os recursos referenciados e ações disponíveis dentro do contexto do último pedido, o cliente não precisa saber muito sobre o servidor, mas um ponto de entrada e algumas convenções sobre a hipermídia. Implementado corretamente, você poderia mudar muitas coisas no lado do servidor sem reescrever uma única linha no cliente.
- E finalmente, it's em camadas, como uma cebola. Você pode colocar várias camadas de componentes entre cliente e servidor, para fins de roteamento, balanceamento de carga, cache ou o que você precisar. Claro que adiciona latência mas também muita flexibilidade. E se você mudar uma camada, apenas a camada anterior pode ser impactada, então a propagação de efeitos de mudança é limitada.
Em geral os únicos contras estão relacionados à latência nos tempos de processamento de pedidos e uso de largura de banda. Mas é uma grande arquitetura de propósito geral que proporciona:
<
Artigos semelhantes
- O que é um chatbot online com APIs RESTful completamente grátis (algo como https://www.cleverbot.com/api)?
- Qual é um bom exemplo da vida real de uma API verdadeiramente RESTful?
- Quais são os potenciais inconvenientes de usar Venmo?
- Quais são os possíveis inconvenientes de usar um Chromecast em um hotel?