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 Applications: Past, Present and Future
Search
Ahmad Nassri
November 22, 2014
Technology
820
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RESTful Applications: Past, Present and Future
My talk at Fullstack Toronto Conference - November 2014 #FSTOCO -
http://fsto.co/speakers
Ahmad Nassri
November 22, 2014
More Decks by Ahmad Nassri
See All by Ahmad Nassri
Modern Patterns in Modular Software Design
ahmadnassri
0
240
The Roaring 2020s
ahmadnassri
0
480
Modern Patterns in Modular Software Architectures
ahmadnassri
0
2k
Scaling Documentation and Team Practices
ahmadnassri
1
1k
Scaling Documentation and Team Practices
ahmadnassri
1
130
Milliseconds to Millions - Benchmarking & Optimization for Fun and Profit!! @ FullStack 2017
ahmadnassri
1
720
How to build a successful API
ahmadnassri
0
320
Modern Open Source Node.js Packages
ahmadnassri
1
730
Rise of Open Source
ahmadnassri
1
81
Other Decks in Technology
See All in Technology
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
190
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
340
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
160
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
140
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
110
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
320
10分で知る最近のOmarchy
komagata
0
260
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
310
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
200
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
170
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
260
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
4
1.1k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.5k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
Everyday Curiosity
cassininazir
0
310
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
A Tale of Four Properties
chriscoyier
163
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Product Roadmaps are Hard
iamctodd
55
13k
Transcript
None
None
GET /who HTTP/1.1 Host: www.ahmadnassri.com Accept: application/json HTTP/1.1 200 OK
Date: Sat, 22 Nov 2014 15:15:00 GMT Content-Type: application/json { "name": "Ahmad Nassri", "website": "http://www.ahmadnassri.com/", "twitter": "http://twitter.com/ahmadnassri", "email": "
[email protected]
", "bio": "Technologist, Entrepreneur, Dog Lover", "work": { "company": " ", "title": "API Master" } } Mashape.com
Consume, Monitor, Manage, Monetize and Distribute Private and Public APIs.
None
None
None
None
REST ( presentational State Transfer) is a simple stateless architecture
style that generally runs over .
: Started as notes written by Tim Berners Lee. First
standard HTTP/1.0 version (RFC 1945). HTTP/1.1 (RFC 2616) & REST presential tate ransfer by Roy Fielding Refactoring with HTTP/1.1 bis SPDY by Google IETF working group released draft of HTTP/2 RFC2616 is Dead! HTTP/2 Last Call!
RFC7230 - HTTP/1.1: Message Syntax and Routing RFC7231 - HTTP/1.1:
Semantics and Content RFC7232 - HTTP/1.1: Conditional Requests RFC7233 - HTTP/1.1: Range Requests RFC7234 - HTTP/1.1: Caching RFC7235 - HTTP/1.1: Authentication
None
None
None
Collection+JSON Hypertext Application Language ( ) ATOM
GET /player/1234567890 HTTP/1.1 { "@context": { "@vocab": "https://schema.org/", "image": {
"@type": "@id" }, "friends": { "@type": "@id" } }, "@id": "https://api.example.com/player/1234567890", "playerId": "1234567890", "name": "Kevin Sookocheff", "alternateName": "soofaloofa", "image": "https://api.example.com/player/1234567890/avatar.png", "friends": "https://api.example.com/player/1234567890/friends" }
GET /player/1234567890/friends HTTP/1.1 { "@context": [ "http://www.w3.org/ns/hydra/core", { "@vocab": "https://schema.org/",
"image": { "@type": "@id" }, "friends": { "@type": "@id" } } ], "@id": "https://api.example.com/player/1234567890/friends", "operation": { "@type": "BefriendAction", "method": "POST", "expects": { "@id": "http://schema.org/Person", "supportedProperty": [ { "property": "name", "range": "Text" }, { "property": "alternateName", "range": "Text" }, { "property": "image", "range": "URL" } ] } }, "member": [ { "@id": "https://api.example.com/player/1895638109", "name": "Sheldon Dong", "alternateName": "sdong", "image": "https://api.example.com/player/1895638109/avatar.png", "friends": "https://api.example.com/player/1895638109/friends" }, { "@id": "https://api.example.com/player/8371023509", ... } ], "nextPage": "https://api.example.com/player/1234567890/friends?page=2" }
RFC 2617
# URL Versioning: GET /api/v2/foo HTTP/1.1 # Custom Header: GET
/api/foo X-VERSION: 2 # Content Type GET: /api/foo Accept: application/vnd.github.v3.raw+json
None
None
None
None
None
None
Stalk me on Twitter , Read more on my ,
Follow my APIs on . @AhmadNassri Blog Mashape.com/AhmadNassri http://www.ahmadnassri.com http://www.mashape.com