Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RESTful Web Services
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Allisson Azevedo
November 02, 2011
Technology
220
4
Share
RESTful Web Services
Uma visão geral sobre RESTful Web Services
Allisson Azevedo
November 02, 2011
More Decks by Allisson Azevedo
See All by Allisson Azevedo
Programação Assíncrona com Asyncio
allisson
0
130
Crawleando sites com NodeJS
allisson
0
180
Introdução a linguagem Go
allisson
0
330
Docker + Django
allisson
5
680
Construindo um micro framework web em Python
allisson
0
250
Consumindo API's OAuth{1,2} com Python
allisson
1
210
Tarefas assíncronas com django e celery
allisson
1
24k
Deploy completo de uma aplicação Django
allisson
6
530
Desenvolvimento Web com Django
allisson
0
150
Other Decks in Technology
See All in Technology
20年前の「OSS革命」に学ぶ AI時代の生存戦略
samakada
0
480
Expiration of Secure Boot Certificates for vSphere Virtual Machines
mirie_sd
0
110
Hacobu Tech Deck
hacobu
PRO
0
130
Pure Intonation on Browser: Building a Sequencer with Ruby
nagachika
0
160
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
350
AWS Transform CustomでIaCコードを自由自在に変換しよう
duelist2020jp
0
130
「誰一人取り残されない」 AIエージェント時代のプロダクト設計思想 Product Management Summit 2026
mizushimac
1
1.6k
20260428_Product Management Summit_tadokoroyoshiro
tadokoro_yoshiro
14
14k
The Journey of Box Building
tagomoris
4
3.4k
No Types Needed, Just Callable Method Check
dak2
1
1.8k
AIコーディング時代における、ソフトウェアサプライチェーン攻撃に対する防衛術(簡易版)
soysoysoyb
0
120
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
440
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
480
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
360
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
170
Writing Fast Ruby
sferik
630
63k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
180
Embracing the Ebb and Flow
colly
88
5k
We Are The Robots
honzajavorek
0
220
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
740
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
180
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Transcript
RESTful Web Services Allisson Azevedo II Encontro Comunicação Digital http://allisson.eti.br
Web Services
Web Services ➔ Comunicação entre sistemas ➔ HTTP como meio
de transporte ➔ Protocolo estável ➔ Simples ➔ Escalável ➔ Tráfego permitido
Web Services ➔ Independência ➔ Sistema operacional ➔ Linguagem de
programação ➔ Hardware
Web Services ➔ Padrões Abertos ➔ XML ➔ XML-RPC ➔
SOAP
Web Services - XML ➔ Representação eficiente para sistemas ➔
Fácil manipulação em linguagens de programação ➔ Padrão para troca de informações
Exemplo - RSS
Exemplo - RSS
Web Services - XML-RPC ➔ Criado por Dave Winer (1995)
➔ Transportado via protocolo HTTP ➔ Focado na simplicidade
XML-RPC request
XML-RPC response
Web Services - SOAP ➔ Padrão para Web Services (W3C)
➔ Transporte em vários protocolos ➔ Descrição dos serviços disponíveis (WSDL) ➔ Em desenvolvimento (1.2 W3C)
SOAP request
SOAP response
Web Services - SOAP ➔ Crítica ➔ Complexidade dos formatos
SOAP e WSDL
REST
REpresentational State Transfer
REST não é ➔ Novo envelope xml semelhante ao SOAP
➔ Toolkit/Framework ➔ Padrão ➔ Sem especificação na W3C
REST é ➔ Princípios para desenvolvimento de uma arquitetura ➔
Utiliza padrões já existentes ➔ Tese de Roy Fielding (2000)
REST ➔ Stateless ➔ Orientado a Recurso (Resource- Oriented) ➔
Interface uniforme para acesso aos recursos ➔ Representações independentes (baseadas no Content-Type)
REST - Stateless ➔ Toda requisição HTTP é completamente isolada
de outras ➔ Uma requisição precisa incluir todas as informações necessárias para uma resposta do servidor
REST - Recursos ➔ Tudo que é importante ao ponto
de ser exposto pelo sistema na web
REST - Recursos ➔ Possíveis recursos: ➔ Bookmarks no Delicious
➔ Atualizações no Twitter ➔ Scraps do Orkut ➔ Fotos no Flickr
REST - Recursos ➔ URI (Identificador Universal de Recursos) ➔
Todo recurso possui no mínimo uma URI
http://rails.lighthouseapp.com/projects/8994- ruby-on-rails
http://rails.lighthouseapp.com/projects/8994- ruby-on-rails/tickets
http://rails.lighthouseapp.com/projects/8994- ruby-on-rails/milestones
REST – Interface Uniforme ➔ Utiliza os métodos do protocolo
HTTP para manipulação de recursos (Verbos) ➔ GET ➔ POST ➔ PUT ➔ DELETE
REST – Interface Uniforme ➔ GET ➔ Utilizado para obter
uma representação do recurso
REST – Interface Uniforme ➔ POST ➔ Utilizado para criar
um novo recurso
REST – Interface Uniforme ➔ PUT ➔ Utilizado para modificar
um recurso existente
REST – Interface Uniforme ➔ DELETE ➔ Utilizado para apagar
um recurso existente
REST – Interface Uniforme ➔ Associar os verbos ao C.R.U.D
em banco de dados ➔ Create (INSERT) = POST ➔ Read (SELECT) = GET ➔ Update (UPDATE) = PUT ➔ Delete (DELETE) = DELETE
HREF POST /bookmarks/create GET /bookmarks/show/1 POST /bookmarks/update/1 POST/GET /bookmarks/delete/1 URI
POST /bookmarks GET /bookmarks/1 PUT /bookmarks/1 DELETE /bookmarks/1 Não RESTful Verbo Ação Criar (Create) Visualizar (Read) Atualizar (Update) Apagar (Delete) RESTful Verbo Ação Criar (Create) Visualizar (Read) Atualizar (Update) Apagar (Delete)
REST – Representações ➔ Não se limita ao XML ➔
A representação é livre ➔ HTML/XHTML ➔ XML ➔ JSON ➔ PDF ➔ PNG
None
None
None
REST - Classificação ➔ RESTful (High REST) ➔ Implementação em
confirmidade com a tese de Roy Fielding ➔ Utilização dos quatro verbos (POST, GET, PUT, DELETE)
REST - Classificação ➔ REST-RPC (Low REST) ➔ Utilização do
método GET para toda API
REST no mundo real
MySpace
MySpace ➔ RESTful ➔ http://developer.myspace.com/com munity/RestfulAPIs/resources.aspx
None
del.icio.us
del.icio.us ➔ REST-RPC ➔ http://del.icio.us/help/api/
None
Flickr
Flickr ➔ REST-RPC ➔ http://www.flickr.com/services/api/
None
Twitter
Twitter ➔ REST-RPC ➔ http://groups.google.com/group/twi tter-development-talk/web/api- documentation
None
Amazon Simple Storage Service
Amazon Simple Storage Service ➔ RESTful ➔ Exclusivo via web
services ➔ http://docs.amazonwebservices.co m/AmazonS3/2006-03-01/gsg/
None
Dúvidas?
Obrigado!