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
Allisson Azevedo
November 02, 2011
Technology
4
210
RESTful Web Services
Uma visão geral sobre RESTful Web Services
Allisson Azevedo
November 02, 2011
Tweet
Share
More Decks by Allisson Azevedo
See All by Allisson Azevedo
Programação Assíncrona com Asyncio
allisson
0
85
Crawleando sites com NodeJS
allisson
0
140
Introdução a linguagem Go
allisson
0
300
Docker + Django
allisson
5
600
Construindo um micro framework web em Python
allisson
0
220
Consumindo API's OAuth{1,2} com Python
allisson
1
170
Tarefas assíncronas com django e celery
allisson
1
24k
Deploy completo de uma aplicação Django
allisson
6
480
Desenvolvimento Web com Django
allisson
0
140
Other Decks in Technology
See All in Technology
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
13
5.2k
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
140
エンジニアが加速させるプロダクトディスカバリー 〜最速で価値ある機能を見つける方法〜 / product discovery accelerated by engineers
rince
4
320
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
130
速くて安いWebサイトを作る
nishiharatsubasa
10
12k
RSNA2024振り返り
nanachi
0
570
トラシューアニマルになろう ~開発者だからこそできる、安定したサービス作りの秘訣~
jacopen
2
2k
分解して理解する Aspire
nenonaninu
1
110
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.3k
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
18
7.5k
技術的負債解消の取り組みと専門チームのお話 #技術的負債_Findy
bengo4com
1
1.3k
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
7.2k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
RailsConf 2023
tenderlove
29
1k
4 Signs Your Business is Dying
shpigford
182
22k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Thoughts on Productivity
jonyablonski
69
4.5k
The Invisible Side of Design
smashingmag
299
50k
Code Reviewing Like a Champion
maltzj
521
39k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Embracing the Ebb and Flow
colly
84
4.6k
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!