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
830
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
490
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
330
Modern Open Source Node.js Packages
ahmadnassri
1
740
Rise of Open Source
ahmadnassri
1
87
Other Decks in Technology
See All in Technology
古い指輪から広がった JAVA コミュニティ とのつながり
yamad
0
110
WasmをRustにする
sansantech
PRO
0
250
大型犬好きによるPugの紹介
yamanoku
1
160
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
260
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
330
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
160
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
250
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
230
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
150
go-sqletch
moznion
0
140
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
590
Abbi's Birthday
coloredviolet
4
10k
Designing for Performance
lara
612
70k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
30 Presentation Tips
portentint
PRO
1
430
Evolving SEO for Evolving Search Engines
ryanjones
0
330
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
Designing Experiences People Love
moore
143
24k
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