SlideShare a Scribd company logo
1 of 15
Integrando sua App ao Mundo via
REST/JSON
Mário Guedes – jmarioguedes@gmail.com
Mário?
• Gerente de Desenvolvimento na Contact Studio Software
• Estamos contratando!
• http://www.g4solutions.com.br/trabalhe-conosco/
• Desenvolvedor Delphi, Python, JS e noSQL
• 15+ anos na lida
• Filho de Valdete e Joselito
• Irmão do Manoel, da Jenny e do Jonhy
• Pai do Júlio e da Fernanda
• E noivo da Tamires
Iniciando
• REST: Estilo arquitetural criado por Roy Fielding
• RESTful: Design de adoção que respeita os conceitos REST
• REST API: Dados e funções de negócios expostos via web para outras aplicações consumirem
• JSON: Representação de Objetos JavaScript
• Formato em texto simples e auto descritivo
• Permite encadeamento de dados
• Permite intercâmbio de informação entre paltaformas heterogêneas (Delphi X Python por exemplo)
• Menos verboso que o XML
• Criado por Douglas Crockford
• http://json.org/json-pt.html
HTTP – Protocolo de Transferência de Hipertexto
• Entendendo o HTTP entenderemos o REST
• Baseado em texto: Simplicidade
• Orientado à documento
• Modelo de Requisição e Resposta: Síncrono
• Possui uma ação, um endereçamento, um cabeçalho e
talvez um conteúdo
URL: Recurso a ser trabalho
• A URL identifica o recurso a ser trabalhado.
• Não importa o que será feito com o recurso, a URL será a mesma.
• O Verbo HTTP é que determinará o que será feito.
• As partes de uma URL determinam uma hierarquia em relação ao recurso.
• Para consumir um servidor DataSnap/REST usamos URL por justaposição.
Interface uniforme
• A ação a ser executada sobre um recurso é determinado
pelo verbo HTTP.
• Os quatro verbos principais equivalem às operações
CRUD.
Verbo Ação
Create POST Cria um novo recurso
Read GET Recupera um determinado recurso ou lista de recursos
Update PUT Atualiza um determinado recurso ou cria se inexistente
Delete DELETE Elimina um determinado recurso
Principais Status HTTP
• 200 – OK: A solicitação foi processada com sucesso!
• 201 – CREATED: A solicitação de criação de um recurso (POST) foi executada com sucesso!
• 202 – ACCEPTED: A solicitação de execução de uma tarefa assíncrona foi enfileirada com sucesso!
• 304 – NOT MODIFIED: O conteúdo armazenado em cache pela aplicação cliente é válida!
• 400 – BAD REQUEST: A solicitação possui algum erro por parte da aplicação cliente.
• 401 – UNAUTHORIZED: O usuário não pode executar a operação desejada.
• 404 – NOT FOUND: Clássico! O recurso solicitado não existe.
• 500 – INTERNAL SERVER ERROR: Ocorreu um erro na camada servidora.
JSON – Notação de Objeto JavaScript
• Um recurso deve ser representado de alguma forma.
• Mas como podemos representar um vendedor ou uma empresa?
• Precisamos de uma estrutura complexa.
• Poderia ser XML, INI, CSV, YAML... Mas a indústria adotou o JSON.
• Legibilidade!
• Maior compactação resulta em maior vazão.
• Aderência ao JavaScript: A linguagem frontend web.
Paleta REST Client
• TRESTClient: Responsável pela configuração de acesso à um
serviço RESTful.
• TRESTRequest: Responsável pela requisição de um recurso
específico.
• TRESTResponse: Responsável pela decodificação da resposta.
• HTTPS: http://indy.fulgan.com/SSL/
JSON é simples!
• A unit System.JSON possui várias classes para lidar com o
JSON no Delphi.
API REST
• Grandes serviços web possuem uma REST API.
• É um conjunto de URLs e representações JSON bem documentadas.
• Facebook, Twitter, Google, LinkedIn, Uber, Spotify, Netflix, Instagram, Amazon,
GitHub, RedTube e provavelmente o seu serviço web preferido possuiu APIs
REST.
• Deve-se ler a documentação e ficar atento aos termos de uso. Em geral há uma
área no site para desenvolvedores.
• E o seu sistema pode entrar neste time: DataSnap/REST.
Exemplo prático - Suas músicas do Spotify
• https://developer.spotify.com/web-api/endpoint-reference/
• OAuth 2.0
• Vamos listar nossos álbuns e playlists
• Vamos adicionar uma nova playlist ao nosso usuário
Para saber mais
• REST & JSON, Chega de Dúvidas!
Rodrigo Mourão
https://youtu.be/k7J_FJWiFu8?t=15m:45s
• Integração de Serviços Cloud com REST/JSON
Fernando Rizzato
https://youtu.be/azFARYrYKR4
• Tudo sobre o REST Client Library
Mário Guedes
https://youtu.be/ajl2GEJonQA
@ jmarioguedes@gmail.com
/jmarioguedes
/jmarioguedes
@ mario.guedes@contactstudio.com

More Related Content

What's hot

Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Minchul Jung
 
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSLSpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSLSunghyouk Bae
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architectureBishal Khanal
 
Spring Framework - MVC
Spring Framework - MVCSpring Framework - MVC
Spring Framework - MVCDzmitry Naskou
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB FundamentalsMongoDB
 
DDD patterns that were not in the book
DDD patterns that were not in the bookDDD patterns that were not in the book
DDD patterns that were not in the bookCyrille Martraire
 
When to Use MongoDB
When to Use MongoDBWhen to Use MongoDB
When to Use MongoDBMongoDB
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js ExpressEyal Vardi
 
Asynchronous Programming in .NET
Asynchronous Programming in .NETAsynchronous Programming in .NET
Asynchronous Programming in .NETPierre-Luc Maheu
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUDPrem Sanil
 
Conhecendo Apache Kafka
Conhecendo Apache KafkaConhecendo Apache Kafka
Conhecendo Apache KafkaRafa Noronha
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e PráticaEduardo Pires
 
Not Just ORM: Powerful Hibernate ORM Features and Capabilities
Not Just ORM: Powerful Hibernate ORM Features and CapabilitiesNot Just ORM: Powerful Hibernate ORM Features and Capabilities
Not Just ORM: Powerful Hibernate ORM Features and CapabilitiesBrett Meyer
 

What's hot (20)

An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1
 
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSLSpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSL
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Spring Framework - MVC
Spring Framework - MVCSpring Framework - MVC
Spring Framework - MVC
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
 
Rest
RestRest
Rest
 
DDD patterns that were not in the book
DDD patterns that were not in the bookDDD patterns that were not in the book
DDD patterns that were not in the book
 
When to Use MongoDB
When to Use MongoDBWhen to Use MongoDB
When to Use MongoDB
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
Mongodb vs mysql
Mongodb vs mysqlMongodb vs mysql
Mongodb vs mysql
 
Asynchronous Programming in .NET
Asynchronous Programming in .NETAsynchronous Programming in .NET
Asynchronous Programming in .NET
 
Express JS
Express JSExpress JS
Express JS
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 
Hbase hivepig
Hbase hivepigHbase hivepig
Hbase hivepig
 
Conhecendo Apache Kafka
Conhecendo Apache KafkaConhecendo Apache Kafka
Conhecendo Apache Kafka
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e Prática
 
Not Just ORM: Powerful Hibernate ORM Features and Capabilities
Not Just ORM: Powerful Hibernate ORM Features and CapabilitiesNot Just ORM: Powerful Hibernate ORM Features and Capabilities
Not Just ORM: Powerful Hibernate ORM Features and Capabilities
 

Viewers also liked

Eva diagnostica 2
Eva diagnostica 2Eva diagnostica 2
Eva diagnostica 2Thaly Hoyos
 
Elópez relación hardware y software
Elópez relación hardware y softwareElópez relación hardware y software
Elópez relación hardware y softwareEmmanuel Lopez
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Operationalising digital tax: Three things you need to do now
Operationalising digital tax: Three things you need to do now Operationalising digital tax: Three things you need to do now
Operationalising digital tax: Three things you need to do now Intuit Inc.
 
Angela Frucci Portfolio
Angela Frucci PortfolioAngela Frucci Portfolio
Angela Frucci PortfolioAngela Frucci
 
Marketing your firm – Key foundations you’ve got to get right
Marketing your firm – Key foundations you’ve got to get rightMarketing your firm – Key foundations you’ve got to get right
Marketing your firm – Key foundations you’ve got to get rightIntuit Inc.
 

Viewers also liked (10)

Eva diagnostica 2
Eva diagnostica 2Eva diagnostica 2
Eva diagnostica 2
 
Valores docentes
Valores docentesValores docentes
Valores docentes
 
Elópez relación hardware y software
Elópez relación hardware y softwareElópez relación hardware y software
Elópez relación hardware y software
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Operationalising digital tax: Three things you need to do now
Operationalising digital tax: Three things you need to do now Operationalising digital tax: Three things you need to do now
Operationalising digital tax: Three things you need to do now
 
Angela Frucci Portfolio
Angela Frucci PortfolioAngela Frucci Portfolio
Angela Frucci Portfolio
 
Marketing your firm – Key foundations you’ve got to get right
Marketing your firm – Key foundations you’ve got to get rightMarketing your firm – Key foundations you’ve got to get right
Marketing your firm – Key foundations you’ve got to get right
 
Sistemasoperativos juarezbermudez
Sistemasoperativos juarezbermudezSistemasoperativos juarezbermudez
Sistemasoperativos juarezbermudez
 
Valuaciones
ValuacionesValuaciones
Valuaciones
 

Similar to Integrando sua App ao Mundo via REST/JSON

Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTMario Guedes
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTArrayOf.io
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixAndré Déo
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceJosé Roberto Araújo
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web APIVinicius Mussak
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
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 JSONAmbiente Livre
 
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 JSONMarcio Junior Vieira
 
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.pdfBrunoAlbuquerque864673
 
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 APIsHeider Lopes
 
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 SISTEMASHeider Lopes
 
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.pdfBrunoAlbuquerque864673
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]Igor Santos
 

Similar to Integrando sua App ao Mundo via REST/JSON (20)

Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o REST
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o REST
 
Rest
RestRest
Rest
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
REST and JEE
REST and JEEREST and JEE
REST and JEE
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com Zabbix
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
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
 
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 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
 
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
 
REST com Python
REST com PythonREST com Python
REST com Python
 
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
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
 

More from Mario Guedes

O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitMario Guedes
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISMario Guedes
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumMario Guedes
 
Expressão Regular - Cookbook
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - CookbookMario Guedes
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
 
Foco no app, viva o serverless!
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!Mario Guedes
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Mario Guedes
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis Mario Guedes
 
Escalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisEscalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisMario Guedes
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Mario Guedes
 
Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Mario Guedes
 
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiMario Guedes
 
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Mario Guedes
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?Mario Guedes
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaMario Guedes
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Mario Guedes
 
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosMario Guedes
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
 

More from Mario Guedes (20)

O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDIS
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da Ethereum
 
Expressão Regular - Cookbook
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - Cookbook
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
 
Foco no app, viva o serverless!
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis
 
Escalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisEscalando o backend com NGINX e Redis
Escalando o backend com NGINX e Redis
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!
 
Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?
 
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
 
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistema
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
 
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
 

Integrando sua App ao Mundo via REST/JSON

  • 1.
  • 2. Integrando sua App ao Mundo via REST/JSON Mário Guedes – jmarioguedes@gmail.com
  • 3. Mário? • Gerente de Desenvolvimento na Contact Studio Software • Estamos contratando! • http://www.g4solutions.com.br/trabalhe-conosco/ • Desenvolvedor Delphi, Python, JS e noSQL • 15+ anos na lida • Filho de Valdete e Joselito • Irmão do Manoel, da Jenny e do Jonhy • Pai do Júlio e da Fernanda • E noivo da Tamires
  • 4. Iniciando • REST: Estilo arquitetural criado por Roy Fielding • RESTful: Design de adoção que respeita os conceitos REST • REST API: Dados e funções de negócios expostos via web para outras aplicações consumirem • JSON: Representação de Objetos JavaScript • Formato em texto simples e auto descritivo • Permite encadeamento de dados • Permite intercâmbio de informação entre paltaformas heterogêneas (Delphi X Python por exemplo) • Menos verboso que o XML • Criado por Douglas Crockford • http://json.org/json-pt.html
  • 5. HTTP – Protocolo de Transferência de Hipertexto • Entendendo o HTTP entenderemos o REST • Baseado em texto: Simplicidade • Orientado à documento • Modelo de Requisição e Resposta: Síncrono • Possui uma ação, um endereçamento, um cabeçalho e talvez um conteúdo
  • 6. URL: Recurso a ser trabalho • A URL identifica o recurso a ser trabalhado. • Não importa o que será feito com o recurso, a URL será a mesma. • O Verbo HTTP é que determinará o que será feito. • As partes de uma URL determinam uma hierarquia em relação ao recurso. • Para consumir um servidor DataSnap/REST usamos URL por justaposição.
  • 7. Interface uniforme • A ação a ser executada sobre um recurso é determinado pelo verbo HTTP. • Os quatro verbos principais equivalem às operações CRUD. Verbo Ação Create POST Cria um novo recurso Read GET Recupera um determinado recurso ou lista de recursos Update PUT Atualiza um determinado recurso ou cria se inexistente Delete DELETE Elimina um determinado recurso
  • 8. Principais Status HTTP • 200 – OK: A solicitação foi processada com sucesso! • 201 – CREATED: A solicitação de criação de um recurso (POST) foi executada com sucesso! • 202 – ACCEPTED: A solicitação de execução de uma tarefa assíncrona foi enfileirada com sucesso! • 304 – NOT MODIFIED: O conteúdo armazenado em cache pela aplicação cliente é válida! • 400 – BAD REQUEST: A solicitação possui algum erro por parte da aplicação cliente. • 401 – UNAUTHORIZED: O usuário não pode executar a operação desejada. • 404 – NOT FOUND: Clássico! O recurso solicitado não existe. • 500 – INTERNAL SERVER ERROR: Ocorreu um erro na camada servidora.
  • 9. JSON – Notação de Objeto JavaScript • Um recurso deve ser representado de alguma forma. • Mas como podemos representar um vendedor ou uma empresa? • Precisamos de uma estrutura complexa. • Poderia ser XML, INI, CSV, YAML... Mas a indústria adotou o JSON. • Legibilidade! • Maior compactação resulta em maior vazão. • Aderência ao JavaScript: A linguagem frontend web.
  • 10. Paleta REST Client • TRESTClient: Responsável pela configuração de acesso à um serviço RESTful. • TRESTRequest: Responsável pela requisição de um recurso específico. • TRESTResponse: Responsável pela decodificação da resposta. • HTTPS: http://indy.fulgan.com/SSL/
  • 11. JSON é simples! • A unit System.JSON possui várias classes para lidar com o JSON no Delphi.
  • 12. API REST • Grandes serviços web possuem uma REST API. • É um conjunto de URLs e representações JSON bem documentadas. • Facebook, Twitter, Google, LinkedIn, Uber, Spotify, Netflix, Instagram, Amazon, GitHub, RedTube e provavelmente o seu serviço web preferido possuiu APIs REST. • Deve-se ler a documentação e ficar atento aos termos de uso. Em geral há uma área no site para desenvolvedores. • E o seu sistema pode entrar neste time: DataSnap/REST.
  • 13. Exemplo prático - Suas músicas do Spotify • https://developer.spotify.com/web-api/endpoint-reference/ • OAuth 2.0 • Vamos listar nossos álbuns e playlists • Vamos adicionar uma nova playlist ao nosso usuário
  • 14. Para saber mais • REST & JSON, Chega de Dúvidas! Rodrigo Mourão https://youtu.be/k7J_FJWiFu8?t=15m:45s • Integração de Serviços Cloud com REST/JSON Fernando Rizzato https://youtu.be/azFARYrYKR4 • Tudo sobre o REST Client Library Mário Guedes https://youtu.be/ajl2GEJonQA