REST API

DO JEITO CERTO

Por: Kilderson Sena

Quem é tu mermo?

Kilderson Sena

🤓 Senior Full Stack Engineer / Architect

👨‍🎓 Graduado em Análise e Desenv. Sistemas

🤘 Movido a café e Rockn'roll

👨‍💻 Programador há mais de 14 anos

👨‍👩‍👦 Esposo da Dayanny Pai do Kauan Lucas

fb.com/kilderson.sena

@derson_sena

@derson_sena

dersonsena

dersonsena-cabradev

cabra.dev

@cabra_dev

Quem é tu mermo?

Quem é tu mermo?

8 Motivos para

usar o Yii2

yiiacademy.com.br/8-motivos-para-usar-o-yii-2

Aprenda Orientação a Objetos com Forma de Gelo

devtube.com.br/ebook-oo1.html

Quando a WEb surgiu?

Chutem aí o ano

Quando a WEb surgiu?

Chutem aí o ano

Entre 1989 e 1991 a World Wide Web surgiu

Web Services

Há algum tempo atrás existia o termo

WebAPI's ou WebServices

O que é uma API

Application Programming

Interface

O que é uma API

Interface que serve para permitir uma integração entre 2 ou mais sistemas

SOAP

Simples Object Access Protocol

SOAP

Usa-se XML como formato de dados e estrutura

AJAX

Asynchronous Javascript And XML

AJAX

A partir de 2005 o Backend e Frontend começaram a se separar

AJAX

Foi nesse ponto de tempo que surgiu o termo Web 2.0

AJAX

Adobe Flash era o seu grande concorrente naquele tempo

AJAX

Ajax NÃO é uma tecnologia!

AJAX

É um conjunto de outras tecnologias que já existiam para formar uma nova forma de desenvolver softwares mais dinâmicos

AJAX

Ele dava mais "poder de fogo" que o(a) desenvolvedor(a) construísse uma experiência mais rica para usuário final

JSON

Javascript Object Notation

AJAX

Começou a ganhar mais espaço pela facilidade de manipulação e menos burocracia no processo de desenvolvimento

REST

Representational State

Transfer

REST

Conceito de REST foi criado pelo Roy Fielding na sua Teste de Doutorado 2000

REST

Ele originalmente foi chamado de HTTP Object Model e em 1997 foi renomeado para REST

REST

REST é uma arquitetura relacionada com o Protocolo HTTP

REST

REST NÃO tem relação direta para construção de API's

REST

Client-Server

REST

Stateless

REST

Stateless

  • NÃO manter estado entre as requisições;
  • Requisições independentes;
  • Usa-se Cookies HTTP para podermos fazer algo como: carrinho de compras, autenticação e etc;

 Layered System

A requisição HTTP passa por diversas camadas até chegar ao seu destino como: Middlewares, Filters, Interceptors;

REST

Possibilidade de cachear requisições

REST

Cacheable

REST

Uniform Interface

REST

Identificação de Recursos

- Rest é baseado em recursos identificados;
 

- As ações devem ser realizadas em relação aos recursos identificados de forma independente;

REST

Identificação de Recursos

REST

Verbos HTTP

Nunca envie comandos SQL, PHP, Java, Python no corpo da requisição.

Isso gera um ALTÍSSIMO acoplamento

REST

Verbos HTTP

Use a semântica dos verbos HTTP para realizar ações

REST

Verbos HTTP

REST

Verbos HTTP

REST

Self-descriptive Messages

Toda mensagem (conteúdo da requisição) deve ter informações suficientes para que seja interpretada corretamente

Ex: Content-type

REST

HATEOAS

Hypermedia as the Engine of Application State

(Hypermedia como máquina de estado da aplicação)

REST

HATEOAS

 Hyperlinks no corpo da resposta

REST

HATEOAS

Sem necessidade de uma mapa para navegar

REST

HATEOAS

Traz uma certa dinamicidade e resiliência

REST

HATEOAS

REST

Limitações / Trade-off

Over ou Under Fetching: quando se traz coisas demais ou coisas de menos

REST

Limitações / Trade-off

BFF, GraphQL e gRPC vieram como alternativa para resolver esses problemas

Obrigado! =D

Kilderson Sena

fb.com/kilderson.sena

@derson_sena

@derson_sena

dersonsena

REST API do jeito certo

By Kilderson Sena

REST API do jeito certo

  • 97