GoConqr has a new look! Let us know what you think.

Mind map

Arquitetura Rest

Ian Santos Portuguese

Map content

Arquitetura Rest

  • REST é um termo definido por Roy Fielding em sua tese de mestrado no qual ele descreve sobre um estilo de arquitetura de software sobre um sistema operado em rede. REST é um acrônimo para "Transferência de Estado Representacional" (Representational State Transfer).
  1. Características

    • Recursos
      • Recursos Os recursos individuais são identificados na requisição, como descrevendo elas nas URIs, um exemplo: http://meu.servidor/usuário/user.
    • Ações
      • Você pode aplicar várias ações sobre um recursos. São oito metódos disponíveis pelo protocolo HTTP, porém os mais utilizados são: PUT - Cria ou atualiza o conteúdo do recurso, veja o POST também. GET - Busca o conteúdo do recurso. DELETE - Apaga o conteúdo do recurso.
    • Conteúdo
      • MIME TYPES - De modo geral é utilizado por alguns protocolos para identificar que tipo de conteúdo esta sendo negociado. A identificação geralmente é feita no cabeçalho pelo campo cujo o nome é Content-type. Todo recurso inclui a informação do formato referente ao conteúdo, ou seja quando por exemplo você receber a informação da mensagem que o conteúdo (Content-type) se encontra no formato JSON (application/json) você tera que processar a informaão neste formato. Normalmente o formato dos arquivos utilizados pelos serviços RESTful são JSON, XML ou YAML.
  2. Cliente Servidor

    • Clientes e servidores são separados por uma interface por razões de interesses (SoC), isto significa que o cliente não implica em como os dados são armazenados pois é uma responsabilidade interna do servidor, assim como os servidores não se importam com a interface do usuário. Esta caracteristica torna o desenvolvimento independente entre as partes.
    • Stateless
      • Iremos adicionar uma restrição as interações entre o cliente e o servidor, a comunicação será cliente-stateless-servidor (CSS) e isto significa que para cada requisição será enviada toda informação necessaria para o entendimento da requisição e não poderá re-utilizar nenhum contexto armazenado no servidor. Toda requisição deve ser auto-suficiente e você deve manter o estado da sessão no cliente.
      • Benefícios
        • Visibilidade O pacote de requisição de dados contém todas as informações necessarias para responder a solicitação, diminuindo o trabalho do servidor. Confiabilidade É melhorada porque facilita a tarefa de recuperação de falhas. Escalabilidade Não há necessidade de manter o estado das solicitações, permitindo que o servidor se livre dos recursos alocados rapidamente e ainda simplificando a implementação.
    • Cache
      • Vamos adicionar mais um elemento na arquitetura do REST, o cache no cliente. Podemos definir até agora que iremos obter um cliente-cache-stateless-servidor. Para melhorar o desempenho de rede devemos utilizar este mecanismo para eliminar parcialmente as interações, melhorando a eficiência, escalabilidade e desempenho pelo usuário. Porém isto deve ser muito bem planejado, um cache muito utilizado pode diminuir a confiabilidade dos dados, ou seja eles podem se tornar obsoletos em relação se pedido fosse feito direramente ao servidor, por isto muito cuidado no formatação da sua estrategia.
    • Camadas
      • A utilização de camandas tem como finalidade melhorar a escabilidade do processo, isto significa que é permitido uma arquitetura composta por camadas hierárquicas por condicionar o comportamento de componentes de modo que cada componente não pode "ver" além da camada imediata com as quais estão interagindo. A grande vantagem da imposição desta restrição que a complexidade é restrita, e podemos pensar que estas camadas podem encapsular serviços (ex.: serviços legados) e etc. Como em todos os aspectos, isto deve ser levado em conta na implementação para evitar sobrecargas entre as camadas, a implementação de cache por dominio é uma estrategia para quem for aproveitar desta caracteristica do REST.

Information

Description
Mind Map on Arquitetura Rest, created by Ian Santos on 11/09/2018.
Created by
Ian Santos
Views
0
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?