1 of 14

REST e RESTFul

REST (Representational State Transfer) �RESTFul (Representational State Transfer)

IDS-002

Desenvolvimento para Servidores II

Sistemas para Internet

2 of 14

Índice

IDS-002

Desenvolvimento para Servidores II

Sistemas para Internet

3 of 14

Definição

REST (REpresentational State Transfer) é um estilo arquitetural para sistemas de informação distribuídos, que define regras e boas práticas para uso do protocolo HTTP em aplicações.

  • Foi introduzido e descrito pela primeira vez na tese de doutorado de Roy Fielding em 2000.
  • É uma das abordagens mais utilizadas para a construção de Web APIs.

4 of 14

Segundo autores…

Segundo SAUDATE:

Trata-se de um meio de realizar a comunicação entre dois sistemas diferentes (independente da linguagem em que tenham sido escritos). Mas o fato é que REST estabelece um conjunto de padrões que permite fazer isso de forma eficiente e interoperável (coisas que, considerando cenários de microsserviços, por exemplo, se tornam especialmente interessantes de se possuir).

Segundo FIELDING:

REST é um estilo arquitetural que emerge como uma generalização de várias arquiteturas de rede anteriores. Suas restrições são projetadas para otimizar a eficácia da rede, permitindo que componentes sejam selecionados, adicionados ou atuados independentemente.

1

2

5 of 14

RESTful

É um adjetivo...�

RESTful refere-se a sistemas, serviços web e APIs que implementam os conceitos REST.

6 of 14

Uma API (Application Programming Interface) é um contrato (ou especificação ou abstração) que um software (ex: microserviço) honrará se outro software (ex: frontend) quiser interagir com ele.

7 of 14

Princípios orientadores do REST

03 | Cache

8 of 14

Componentes, Conectores e Dados

01

Uso de componentização, modulares e atualizáveis

Componentes:

  • Cliente, servidor, cache

Conectores:

  • Requisição, resposta

Dados:

  • Representação de estado do recurso

9 of 14

Stateless

02

Cada requisição deve conter todas as informações necessárias para ser compreendida e processada.

Isso significa que nenhuma informação de sessão do cliente é armazenada no servidor entre requisições.

10 of 14

Cache

03

Reuso das informações (respostas) para melhor eficiëncia, escalabilidade e performance

11 of 14

Interface Uniforme

04

A interface entre componentes é simplificada e padronizada.

Propriedades essenciais:

  • Identificação de recursos
  • Manipulação de recursos por meio de representações
  • Mensagens auto-descritivas
  • HATEOAS (Hypermedia As The Engine Of Application State)

12 of 14

Código sob demanda

05

Recepção de pequenos scripts para execução

13 of 14

Sistema em camadas

06

Camadas e modularização

14 of 14

Obrigado!