SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
APIs, REST e
RESTful
O que os programadores
precisam saber?
Olá!
Eu sou Marcos
Echevarria
▹ Natural de Pelotas
▹ CEO e Head do time de desenvolvimento
▹ Professor universitário há mais de 10 anos
▹ Aos poucos retribuindo à comunidade
2
APIs
O que é?
API ou “Application Programming Interface”, é uma forma
de integrar sistemas, possibilitando benefícios como a
segurança dos dados, facilidade no intercâmbio entre
informações com diferentes linguagens de programação,
entre outras.
Elas proporcionam a integração entre sistemas que
possuem linguagem totalmente distintas de maneira ágil.
Esta interface permite a construção de aplicativos e a sua
utilização de maneira não tão evidente para os usuários.
Microserviços
O que é?
Microservices, também conhecido como arquitetura de
microserviços, é um estilo arquitetônico que estrutura
uma solução como uma coleção de serviços ligeiramente
acoplados, que implementam capacidades empresariais.
A arquitetura microservice permite a entrega e a
implantação contínua de aplicativos grandes e
complexos.
Ele também permite que uma organização evolua sua
pilha de tecnologia.
REST
O que é REST?
REST é um estilo de se projetar aplicativos da Web
fracamente acoplados que contam com recursos
nomeados e não com mensagens.
Engenhosamente, o REST transporta a
infraestrutura já validada e bem-sucedida da Web
— HTTP e alavanca aspectos do protocolo como
pedidos GET e POST.
Um pouco de história
O termo REST foi definido por Roy T. Fielding em sua
tese de PhD.
Roy foi um dos principais desenvolvedores de muitos
dos protocolos Web essenciais, incluindo HTTP e
URIs, e ele formalizou várias das idéias por trás deles
nesse documento.
A dissertação é considerada “A Bíblia do REST”.
Request
Request
Http Server
apache
nginx
node.js
apache tomcat
Glassfish
Back-end
php
java
node.js
ruby
C#
get/post/put/delete
Response
dataType
html
text
json
xml
URIs e recursos
Quando fazemos requisições Web, precisamos falar
o caminho da mesma, a URI (Unified Resource
Identifier), ou seja, o identificador único de um
recurso.
Então ao criar as URIs do nosso sistema devemos
levar em conta que elas representam recursos, não
ações.
Nomeando recursos
/produtos/edita /produto/123
Para representar a edição de um produto podemos
usar a URI /produto com o método HTTP PUT.
Operações e métodos
O importante no
REST é que você
tenha um conjunto
pequeno e fixo de
operações bem
definidas.
Isso gera uma
interface uniforme.
O protocolo HTTP
possui sete métodos:
▸ GET
▸ POST
▸ PUT
▸ DELETE
▸ HEAD
▸ OPTIONS
▸ TRACE
Request
Request
Http Server
apache
nginx
node.js
apache tomcat
Glassfish
Back-end
php
java
node.js
ruby
C#
get/post/put/delete
Response
dataType
html
text
json
xml
REST - Princípios fundamentais
▸ Dê a todas as coisas um Identificador
▸ Vincule as coisas
▸ Utilize métodos padronizados
▸ Recursos com múltiplas representações
▸ Comunique sem estado
Vamos utilizar um recurso Cliente.
Nomeando nossos recursos
GET: {API_HOST}/cliente
GET: {API_HOST}/cliente/33
POST: {API_HOST}/cliente
PUT: {API_HOST}/cliente/33
DELETE: {API_HOST}/cliente/{id}
Lendo uma lista de clientes
Lendo um cliente específico
Criando um cliente
Atualizando um cliente
Removendo um cliente
Status code HTTP
RESTful
O que é?
RESTful é a capacidade de um serviço web fazer REST.
Quando criamos uma aplicação web com base na
arquitetura REST, podemos dizer que nossa aplicação é
RESTful.
É mais questão de nomenclatura.
Request
https://maps.googleapis.com/
maps/api/distancematrix/json
?units=imperial&origins=Wash
ington,DC&destinations=New+Y
ork+City,NY&key=YOUR_API_KEY
Response
Integrações
Obrigado!
Perguntas?
Onde me achar:
@quinhodev
quinho@gmail.com
https://echevarria.github.io
36

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 
REST API
REST APIREST API
REST API
 
Integrando Python e JavaScript
Integrando Python e JavaScriptIntegrando Python e JavaScript
Integrando Python e JavaScript
 
O que há de incrível sobre o Flutter
O que há de incrível sobre o FlutterO que há de incrível sobre o Flutter
O que há de incrível sobre o Flutter
 
Rest API Testing
Rest API TestingRest API Testing
Rest API Testing
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
Express JS
Express JSExpress JS
Express JS
 
Rest api standards and best practices
Rest api standards and best practicesRest api standards and best practices
Rest api standards and best practices
 
Building an API with Django and Django REST Framework
Building an API with Django and Django REST FrameworkBuilding an API with Django and Django REST Framework
Building an API with Django and Django REST Framework
 
REST vs GraphQL
REST vs GraphQLREST vs GraphQL
REST vs GraphQL
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developers
 
Django Rest Framework - Building a Web API
Django Rest Framework - Building a Web APIDjango Rest Framework - Building a Web API
Django Rest Framework - Building a Web API
 
Postman Collection Format v2.0 (pre-draft)
Postman Collection Format v2.0 (pre-draft)Postman Collection Format v2.0 (pre-draft)
Postman Collection Format v2.0 (pre-draft)
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - API
 
GRPC.pptx
GRPC.pptxGRPC.pptx
GRPC.pptx
 
Web API Basics
Web API BasicsWeb API Basics
Web API Basics
 
Introdução ao JavaScript
Introdução ao JavaScriptIntrodução ao JavaScript
Introdução ao JavaScript
 
Firebase slide
Firebase slideFirebase slide
Firebase slide
 
Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...
 

Ähnlich wie APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevarria - Tchelinux 2019 Rio Grande

201406Carvalho
201406Carvalho201406Carvalho
201406Carvalho
Afonso Pra
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
lucasbarsand
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturas
rafaslide
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
DNAD
 
Arquiteturas soa woa_rest
Arquiteturas soa woa_restArquiteturas soa woa_rest
Arquiteturas soa woa_rest
Tarcísio Filó
 
Arquiteturas soa woa_rest
Arquiteturas soa woa_restArquiteturas soa woa_rest
Arquiteturas soa woa_rest
Tarcísio Filó
 

Ähnlich wie APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevarria - Tchelinux 2019 Rio Grande (20)

Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
201406Carvalho
201406Carvalho201406Carvalho
201406Carvalho
 
Soa woa - rest
Soa   woa - restSoa   woa - rest
Soa woa - rest
 
SOA - WOA - REST
SOA - WOA - RESTSOA - WOA - REST
SOA - WOA - REST
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
 
Intro aspnet webapi
Intro aspnet webapiIntro aspnet webapi
Intro aspnet webapi
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturas
 
PHP nas Nuvens
PHP nas NuvensPHP nas Nuvens
PHP nas Nuvens
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
A Linguagem Php
A Linguagem PhpA Linguagem Php
A Linguagem Php
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
Arquiteturas soa woa_rest
Arquiteturas soa woa_restArquiteturas soa woa_rest
Arquiteturas soa woa_rest
 
Arquiteturas soa woa_rest
Arquiteturas soa woa_restArquiteturas soa woa_rest
Arquiteturas soa woa_rest
 
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES RESTINTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativos
 

Mehr von Tchelinux

Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Tchelinux
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
Tchelinux
 

Mehr von Tchelinux (20)

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.
 

APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevarria - Tchelinux 2019 Rio Grande