Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RESTful Web Services
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Allisson Azevedo
November 02, 2011
Technology
230
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
140
Crawleando sites com NodeJS
allisson
0
190
Introdução a linguagem Go
allisson
0
360
Docker + Django
allisson
5
710
Construindo um micro framework web em Python
allisson
0
270
Consumindo API's OAuth{1,2} com Python
allisson
1
220
Tarefas assíncronas com django e celery
allisson
1
24k
Deploy completo de uma aplicação Django
allisson
6
560
Desenvolvimento Web com Django
allisson
0
160
Other Decks in Technology
See All in Technology
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
510
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
170
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
280
全人類(ほぼ)AWS Organizations の上でAWSを利用している、その世界を知る話
htan
1
130
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1k
FOSS4Gを活用した自治体業務DXの試み
470715
0
140
自主式軟體工廠
philipz
0
250
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
160
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
420
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
220
The seven pitfalls of AI (revised version)
ufried
0
300
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
330
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
310
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
600
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
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!