Kilderson Sena
Cearense arretado e amante da programação. Full Stack Dev, Pai do Kauan Lucas, viciado em café, futebol e Rock'n Roll
Por: 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
yiiacademy.com.br/8-motivos-para-usar-o-yii-2
devtube.com.br/ebook-oo1.html
Entre 1989 e 1991 a World Wide Web surgiu
Há algum tempo atrás existia o termo
WebAPI's ou WebServices
Application Programming
Interface
Interface que serve para permitir uma integração entre 2 ou mais sistemas
Simples Object Access Protocol
Usa-se XML como formato de dados e estrutura
Asynchronous Javascript And XML
A partir de 2005 o Backend e Frontend começaram a se separar
Foi nesse ponto de tempo que surgiu o termo Web 2.0
Adobe Flash era o seu grande concorrente naquele tempo
Ajax NÃO é uma tecnologia!
É um conjunto de outras tecnologias que já existiam para formar uma nova forma de desenvolver softwares mais dinâmicos
Ele dava mais "poder de fogo" que o(a) desenvolvedor(a) construísse uma experiência mais rica para usuário final
Javascript Object Notation
Começou a ganhar mais espaço pela facilidade de manipulação e menos burocracia no processo de desenvolvimento
Representational State
Transfer
Conceito de REST foi criado pelo Roy Fielding na sua Teste de Doutorado 2000
Ele originalmente foi chamado de HTTP Object Model e em 1997 foi renomeado para REST
REST é uma arquitetura relacionada com o Protocolo HTTP
REST NÃO tem relação direta para construção de API's
Client-Server
Stateless
Stateless
A requisição HTTP passa por diversas camadas até chegar ao seu destino como: Middlewares, Filters, Interceptors;
Possibilidade de cachear requisições
Cacheable
Uniform Interface
Identificação de Recursos
- Rest é baseado em recursos identificados;
- As ações devem ser realizadas em relação aos recursos identificados de forma independente;
Identificação de Recursos
Verbos HTTP
Nunca envie comandos SQL, PHP, Java, Python no corpo da requisição.
Isso gera um ALTÍSSIMO acoplamento
Verbos HTTP
Use a semântica dos verbos HTTP para realizar ações
Verbos HTTP
Verbos HTTP
Self-descriptive Messages
Toda mensagem (conteúdo da requisição) deve ter informações suficientes para que seja interpretada corretamente
Ex: Content-type
HATEOAS
Hypermedia as the Engine of Application State
(Hypermedia como máquina de estado da aplicação)
HATEOAS
Hyperlinks no corpo da resposta
HATEOAS
Sem necessidade de uma mapa para navegar
HATEOAS
Traz uma certa dinamicidade e resiliência
HATEOAS
Limitações / Trade-off
Over ou Under Fetching: quando se traz coisas demais ou coisas de menos
Limitações / Trade-off
BFF, GraphQL e gRPC vieram como alternativa para resolver esses problemas
fb.com/kilderson.sena
@derson_sena
@derson_sena
dersonsena
By Kilderson Sena
Cearense arretado e amante da programação. Full Stack Dev, Pai do Kauan Lucas, viciado em café, futebol e Rock'n Roll