SlideShare a Scribd company logo
1 of 67
Download to read offline
RESTful APIs and FRAPI
                                     a matter of minutes
                                         @davidcoallier




Dé Luain 20 Meán Fómhair 2010
Who are you?
                                       Experiences, usage, etc.




Dé Luain 20 Meán Fómhair 2010
Who am I?
                                   Work, experiences, usage, etc.




Dé Luain 20 Meán Fómhair 2010
The Talk!
                                   Recap of why you are here...




Dé Luain 20 Meán Fómhair 2010
Webservices?
                                   SOAP, XML-RPC, REST-ish, RESTful, etc...




Dé Luain 20 Meán Fómhair 2010
RESTful!
                                 Introduction, History, Theory, Incentive.




Dé Luain 20 Meán Fómhair 2010
Roy, Oh Roy....
                                   And it was born...




Dé Luain 20 Meán Fómhair 2010
Client — Server!
                                Talking architecture, representation, resources..




Dé Luain 20 Meán Fómhair 2010
Statelessness
                                     Forget sessions, forget states.




Dé Luain 20 Meán Fómhair 2010
Layered
                                  Load balancing, caching, ignorance.




Dé Luain 20 Meán Fómhair 2010
Cacheability
                                      Remember? Remember!




Dé Luain 20 Meán Fómhair 2010
Homogeneity
                                  Negotiations, URIs, Collections, Resources




Dé Luain 20 Meán Fómhair 2010
Concepts
                                 Representations of resources, concepts
                                                 Consider a google search.




Dé Luain 20 Meán Fómhair 2010
{
                                    "search": "term",
                                    "count": 2,
                                    "items": [{
                                       "title": "Item 1 Title",
                                       "href": "/link/1",
                                       "description": "Desc 1"
                                    }, {
                                       "title": "Item n title",
                                       "href": "/link/n",
                                       "description": "Desc n"
                                    }]
                                }

Dé Luain 20 Meán Fómhair 2010
Usability
                                 I hate frontends, but not usable software....




Dé Luain 20 Meán Fómhair 2010
Collections
                                      http://api.com/friends




Dé Luain 20 Meán Fómhair 2010
Resources
                                    http://api.com/friends/david




Dé Luain 20 Meán Fómhair 2010
Good URIs
                                    Your URI is everything




Dé Luain 20 Meán Fómhair 2010
Sentences
                                  “What if we make every URL a sentence?”
                                                                    @shiflett




Dé Luain 20 Meán Fómhair 2010
Quick Recap
                                    So what have we talked about so far?




Dé Luain 20 Meán Fómhair 2010
Want your CRUD?       So you are missing your crud? Worry not!




Dé Luain 20 Meán Fómhair 2010
HTTP
                                 It’s got your back!




Dé Luain 20 Meán Fómhair 2010
Really.. it does.




Dé Luain 20 Meán Fómhair 2010
Verbs
                  Post          Create
                  Get           Read
                  Put           Update   CRUD
                  Delete        Delete




Dé Luain 20 Meán Fómhair 2010
Fancy a header?
                                Request what you need, when you want, how you want it




Dé Luain 20 Meán Fómhair 2010
What?


Dé Luain 20 Meán Fómhair 2010
Scenario I


Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Difference?
                                 Leveraging the architecture, no more ugliness




Dé Luain 20 Meán Fómhair 2010
HATEOAS
                                 Hypermedia as the engine of application state




Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
4 Constraints
                                Separation of resources from representation
                                Manipulation of resources by representations
                                          Self-descriptive messages
                                Hypermedia as the engine of application state




Dé Luain 20 Meán Fómhair 2010
Entracte
                                Time out. Time to get some drink, Q&A #1




Dé Luain 20 Meán Fómhair 2010
FRAPI
                                   Oh. My. Day!




Dé Luain 20 Meán Fómhair 2010
What is it?
                                  Management panel & developer facing API




Dé Luain 20 Meán Fómhair 2010
History
                                  When? Where? Why? How?




Dé Luain 20 Meán Fómhair 2010
Solves?
                                 Laziness, Performance Issues, Humans, TTM




Dé Luain 20 Meán Fómhair 2010
It’s live
                                  Production system examples




Dé Luain 20 Meán Fómhair 2010
FLUD
                                 Your iPad app newsreader




Dé Luain 20 Meán Fómhair 2010
Vodafone
                                     Facebook apps




Dé Luain 20 Meán Fómhair 2010
Open Source
                                    Projects using FRAPI for their APIs




Dé Luain 20 Meán Fómhair 2010
web2project
                                   spaz

Dé Luain 20 Meán Fómhair 2010
Entreprise
                                     http://echolibre.com




Dé Luain 20 Meán Fómhair 2010
Performance
                                   Built with performance as primary goal.




Dé Luain 20 Meán Fómhair 2010
Magic-less
                                 Fuck magic. There’s enough code out there




Dé Luain 20 Meán Fómhair 2010
Few Setups
                                  A few examples of possible FRAPI setups




Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Management
                                      Where it all begins...




Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Dé Luain 20 Meán Fómhair 2010
Authentication
                                HTTP Digest, reasons and modification




Dé Luain 20 Meán Fómhair 2010
Databases
                                    RDBMS, NoSQL, DBAL, ORM, etc.




Dé Luain 20 Meán Fómhair 2010
Negotiate
                                    Content Negotiation and extensions




Dé Luain 20 Meán Fómhair 2010
Synchronize
                                      Generation of your code.




Dé Luain 20 Meán Fómhair 2010
Documentation
                                Your consumers need documentation




Dé Luain 20 Meán Fómhair 2010
Development
                                  Decisions, business logic, software development




Dé Luain 20 Meán Fómhair 2010
Q&A


Dé Luain 20 Meán Fómhair 2010

More Related Content

Viewers also liked

telephone data systems USM_Proxy06
telephone data systems  USM_Proxy06telephone data systems  USM_Proxy06
telephone data systems USM_Proxy06finance48
 
Engaged Reading And Writing
Engaged Reading And WritingEngaged Reading And Writing
Engaged Reading And WritingUCEW
 
Facebooks new model
Facebooks new modelFacebooks new model
Facebooks new modelfinanzas_uca
 
Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1
Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1
Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1Aditi Tarafdar
 
hormel foods 2005_Proxy
hormel foods  2005_Proxyhormel foods  2005_Proxy
hormel foods 2005_Proxyfinance46
 
OFE draft 9 21 mitchell baker
OFE draft  9 21 mitchell bakerOFE draft  9 21 mitchell baker
OFE draft 9 21 mitchell bakerchefhja
 
Registering & Booking Appointments
Registering & Booking AppointmentsRegistering & Booking Appointments
Registering & Booking AppointmentsUCEW
 
It's Hard Out There For A Geek
It's Hard Out There For A GeekIt's Hard Out There For A Geek
It's Hard Out There For A Geekguest20e406
 
liz claiborne cert_incorp
liz claiborne cert_incorpliz claiborne cert_incorp
liz claiborne cert_incorpfinance48
 
advance auto parts 2006AnnualReport
advance auto parts 2006AnnualReportadvance auto parts 2006AnnualReport
advance auto parts 2006AnnualReportfinance48
 
advance auto parts 2003_ar
advance auto parts 2003_aradvance auto parts 2003_ar
advance auto parts 2003_arfinance48
 
molson coors brewing 200710K
molson coors brewing   200710Kmolson coors brewing   200710K
molson coors brewing 200710Kfinance46
 
autozone CorpGovernanceOverview020507
autozone  CorpGovernanceOverview020507autozone  CorpGovernanceOverview020507
autozone CorpGovernanceOverview020507finance46
 
Byggherreforskriften
ByggherreforskriftenByggherreforskriften
ByggherreforskriftenFred Johansen
 
liz claiborne AR2001
liz claiborne  AR2001liz claiborne  AR2001
liz claiborne AR2001finance48
 

Viewers also liked (18)

telephone data systems USM_Proxy06
telephone data systems  USM_Proxy06telephone data systems  USM_Proxy06
telephone data systems USM_Proxy06
 
Somma E Differenza
Somma E DifferenzaSomma E Differenza
Somma E Differenza
 
Engaged Reading And Writing
Engaged Reading And WritingEngaged Reading And Writing
Engaged Reading And Writing
 
Facebooks new model
Facebooks new modelFacebooks new model
Facebooks new model
 
Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1
Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1
Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1
 
hormel foods 2005_Proxy
hormel foods  2005_Proxyhormel foods  2005_Proxy
hormel foods 2005_Proxy
 
OFE draft 9 21 mitchell baker
OFE draft  9 21 mitchell bakerOFE draft  9 21 mitchell baker
OFE draft 9 21 mitchell baker
 
Registering & Booking Appointments
Registering & Booking AppointmentsRegistering & Booking Appointments
Registering & Booking Appointments
 
It's Hard Out There For A Geek
It's Hard Out There For A GeekIt's Hard Out There For A Geek
It's Hard Out There For A Geek
 
liz claiborne cert_incorp
liz claiborne cert_incorpliz claiborne cert_incorp
liz claiborne cert_incorp
 
advance auto parts 2006AnnualReport
advance auto parts 2006AnnualReportadvance auto parts 2006AnnualReport
advance auto parts 2006AnnualReport
 
Veruprezentace
VeruprezentaceVeruprezentace
Veruprezentace
 
advance auto parts 2003_ar
advance auto parts 2003_aradvance auto parts 2003_ar
advance auto parts 2003_ar
 
Abrona 01112010
Abrona 01112010Abrona 01112010
Abrona 01112010
 
molson coors brewing 200710K
molson coors brewing   200710Kmolson coors brewing   200710K
molson coors brewing 200710K
 
autozone CorpGovernanceOverview020507
autozone  CorpGovernanceOverview020507autozone  CorpGovernanceOverview020507
autozone CorpGovernanceOverview020507
 
Byggherreforskriften
ByggherreforskriftenByggherreforskriften
Byggherreforskriften
 
liz claiborne AR2001
liz claiborne  AR2001liz claiborne  AR2001
liz claiborne AR2001
 

More from David Coallier

Data Science at Scale @ barricade.io
Data Science at Scale @ barricade.ioData Science at Scale @ barricade.io
Data Science at Scale @ barricade.ioDavid Coallier
 
Data Science, what even?!
Data Science, what even?!Data Science, what even?!
Data Science, what even?!David Coallier
 
Data Science, what even...
Data Science, what even...Data Science, what even...
Data Science, what even...David Coallier
 
PRISM seed-stage Investor Deck
PRISM seed-stage Investor DeckPRISM seed-stage Investor Deck
PRISM seed-stage Investor DeckDavid Coallier
 
The Artful Business of Data Mining: Computational Statistics with Open Source...
The Artful Business of Data Mining: Computational Statistics with Open Source...The Artful Business of Data Mining: Computational Statistics with Open Source...
The Artful Business of Data Mining: Computational Statistics with Open Source...David Coallier
 
Taking PHP to the next level
Taking PHP to the next levelTaking PHP to the next level
Taking PHP to the next levelDavid Coallier
 
Mobile Cloud Architectures
Mobile Cloud ArchitecturesMobile Cloud Architectures
Mobile Cloud ArchitecturesDavid Coallier
 
Taking PHP To the next level
Taking PHP To the next levelTaking PHP To the next level
Taking PHP To the next levelDavid Coallier
 
Orchestra at EngineYard
Orchestra at EngineYardOrchestra at EngineYard
Orchestra at EngineYardDavid Coallier
 
The Orchestra Platform
The Orchestra PlatformThe Orchestra Platform
The Orchestra PlatformDavid Coallier
 
Building APIs with FRAPI
Building APIs with FRAPIBuilding APIs with FRAPI
Building APIs with FRAPIDavid Coallier
 
RESTful APIs and FRAPI
RESTful APIs and FRAPIRESTful APIs and FRAPI
RESTful APIs and FRAPIDavid Coallier
 
Open Source for the greater good
Open Source for the greater goodOpen Source for the greater good
Open Source for the greater goodDavid Coallier
 
An introduction to CouchDB
An introduction to CouchDBAn introduction to CouchDB
An introduction to CouchDBDavid Coallier
 
Get ready for web3.0! Open up your app!
Get ready for web3.0! Open up your app!Get ready for web3.0! Open up your app!
Get ready for web3.0! Open up your app!David Coallier
 

More from David Coallier (16)

Data Science at Scale @ barricade.io
Data Science at Scale @ barricade.ioData Science at Scale @ barricade.io
Data Science at Scale @ barricade.io
 
Data Science, what even?!
Data Science, what even?!Data Science, what even?!
Data Science, what even?!
 
Data Science, what even...
Data Science, what even...Data Science, what even...
Data Science, what even...
 
PRISM seed-stage Investor Deck
PRISM seed-stage Investor DeckPRISM seed-stage Investor Deck
PRISM seed-stage Investor Deck
 
The Artful Business of Data Mining: Computational Statistics with Open Source...
The Artful Business of Data Mining: Computational Statistics with Open Source...The Artful Business of Data Mining: Computational Statistics with Open Source...
The Artful Business of Data Mining: Computational Statistics with Open Source...
 
Taking PHP to the next level
Taking PHP to the next levelTaking PHP to the next level
Taking PHP to the next level
 
Mobile Cloud Architectures
Mobile Cloud ArchitecturesMobile Cloud Architectures
Mobile Cloud Architectures
 
Taking PHP To the next level
Taking PHP To the next levelTaking PHP To the next level
Taking PHP To the next level
 
Orchestra at EngineYard
Orchestra at EngineYardOrchestra at EngineYard
Orchestra at EngineYard
 
The Orchestra Platform
The Orchestra PlatformThe Orchestra Platform
The Orchestra Platform
 
Breaking Technologies
Breaking TechnologiesBreaking Technologies
Breaking Technologies
 
Building APIs with FRAPI
Building APIs with FRAPIBuilding APIs with FRAPI
Building APIs with FRAPI
 
RESTful APIs and FRAPI
RESTful APIs and FRAPIRESTful APIs and FRAPI
RESTful APIs and FRAPI
 
Open Source for the greater good
Open Source for the greater goodOpen Source for the greater good
Open Source for the greater good
 
An introduction to CouchDB
An introduction to CouchDBAn introduction to CouchDB
An introduction to CouchDB
 
Get ready for web3.0! Open up your app!
Get ready for web3.0! Open up your app!Get ready for web3.0! Open up your app!
Get ready for web3.0! Open up your app!
 

RESTful APIs and FRAPI, a matter of minutes

  • 1. RESTful APIs and FRAPI a matter of minutes @davidcoallier Dé Luain 20 Meán Fómhair 2010
  • 2. Who are you? Experiences, usage, etc. Dé Luain 20 Meán Fómhair 2010
  • 3. Who am I? Work, experiences, usage, etc. Dé Luain 20 Meán Fómhair 2010
  • 4. The Talk! Recap of why you are here... Dé Luain 20 Meán Fómhair 2010
  • 5. Webservices? SOAP, XML-RPC, REST-ish, RESTful, etc... Dé Luain 20 Meán Fómhair 2010
  • 6. RESTful! Introduction, History, Theory, Incentive. Dé Luain 20 Meán Fómhair 2010
  • 7. Roy, Oh Roy.... And it was born... Dé Luain 20 Meán Fómhair 2010
  • 8. Client — Server! Talking architecture, representation, resources.. Dé Luain 20 Meán Fómhair 2010
  • 9. Statelessness Forget sessions, forget states. Dé Luain 20 Meán Fómhair 2010
  • 10. Layered Load balancing, caching, ignorance. Dé Luain 20 Meán Fómhair 2010
  • 11. Cacheability Remember? Remember! Dé Luain 20 Meán Fómhair 2010
  • 12. Homogeneity Negotiations, URIs, Collections, Resources Dé Luain 20 Meán Fómhair 2010
  • 13. Concepts Representations of resources, concepts Consider a google search. Dé Luain 20 Meán Fómhair 2010
  • 14. { "search": "term", "count": 2, "items": [{ "title": "Item 1 Title", "href": "/link/1", "description": "Desc 1" }, { "title": "Item n title", "href": "/link/n", "description": "Desc n" }] } Dé Luain 20 Meán Fómhair 2010
  • 15. Usability I hate frontends, but not usable software.... Dé Luain 20 Meán Fómhair 2010
  • 16. Collections http://api.com/friends Dé Luain 20 Meán Fómhair 2010
  • 17. Resources http://api.com/friends/david Dé Luain 20 Meán Fómhair 2010
  • 18. Good URIs Your URI is everything Dé Luain 20 Meán Fómhair 2010
  • 19. Sentences “What if we make every URL a sentence?” @shiflett Dé Luain 20 Meán Fómhair 2010
  • 20. Quick Recap So what have we talked about so far? Dé Luain 20 Meán Fómhair 2010
  • 21. Want your CRUD? So you are missing your crud? Worry not! Dé Luain 20 Meán Fómhair 2010
  • 22. HTTP It’s got your back! Dé Luain 20 Meán Fómhair 2010
  • 23. Really.. it does. Dé Luain 20 Meán Fómhair 2010
  • 24. Verbs Post Create Get Read Put Update CRUD Delete Delete Dé Luain 20 Meán Fómhair 2010
  • 25. Fancy a header? Request what you need, when you want, how you want it Dé Luain 20 Meán Fómhair 2010
  • 26. What? Dé Luain 20 Meán Fómhair 2010
  • 27. Scenario I Dé Luain 20 Meán Fómhair 2010
  • 28. Dé Luain 20 Meán Fómhair 2010
  • 29. Dé Luain 20 Meán Fómhair 2010
  • 30. Dé Luain 20 Meán Fómhair 2010
  • 31. Dé Luain 20 Meán Fómhair 2010
  • 32. Dé Luain 20 Meán Fómhair 2010
  • 33. Difference? Leveraging the architecture, no more ugliness Dé Luain 20 Meán Fómhair 2010
  • 34. HATEOAS Hypermedia as the engine of application state Dé Luain 20 Meán Fómhair 2010
  • 35. Dé Luain 20 Meán Fómhair 2010
  • 36. 4 Constraints Separation of resources from representation Manipulation of resources by representations Self-descriptive messages Hypermedia as the engine of application state Dé Luain 20 Meán Fómhair 2010
  • 37. Entracte Time out. Time to get some drink, Q&A #1 Dé Luain 20 Meán Fómhair 2010
  • 38. FRAPI Oh. My. Day! Dé Luain 20 Meán Fómhair 2010
  • 39. What is it? Management panel & developer facing API Dé Luain 20 Meán Fómhair 2010
  • 40. History When? Where? Why? How? Dé Luain 20 Meán Fómhair 2010
  • 41. Solves? Laziness, Performance Issues, Humans, TTM Dé Luain 20 Meán Fómhair 2010
  • 42. It’s live Production system examples Dé Luain 20 Meán Fómhair 2010
  • 43. FLUD Your iPad app newsreader Dé Luain 20 Meán Fómhair 2010
  • 44. Vodafone Facebook apps Dé Luain 20 Meán Fómhair 2010
  • 45. Open Source Projects using FRAPI for their APIs Dé Luain 20 Meán Fómhair 2010
  • 46. web2project spaz Dé Luain 20 Meán Fómhair 2010
  • 47. Entreprise http://echolibre.com Dé Luain 20 Meán Fómhair 2010
  • 48. Performance Built with performance as primary goal. Dé Luain 20 Meán Fómhair 2010
  • 49. Magic-less Fuck magic. There’s enough code out there Dé Luain 20 Meán Fómhair 2010
  • 50. Few Setups A few examples of possible FRAPI setups Dé Luain 20 Meán Fómhair 2010
  • 51. Dé Luain 20 Meán Fómhair 2010
  • 52. Dé Luain 20 Meán Fómhair 2010
  • 53. Dé Luain 20 Meán Fómhair 2010
  • 54. Dé Luain 20 Meán Fómhair 2010
  • 55. Dé Luain 20 Meán Fómhair 2010
  • 56. Management Where it all begins... Dé Luain 20 Meán Fómhair 2010
  • 57. Dé Luain 20 Meán Fómhair 2010
  • 58. Dé Luain 20 Meán Fómhair 2010
  • 59. Dé Luain 20 Meán Fómhair 2010
  • 60. Dé Luain 20 Meán Fómhair 2010
  • 61. Authentication HTTP Digest, reasons and modification Dé Luain 20 Meán Fómhair 2010
  • 62. Databases RDBMS, NoSQL, DBAL, ORM, etc. Dé Luain 20 Meán Fómhair 2010
  • 63. Negotiate Content Negotiation and extensions Dé Luain 20 Meán Fómhair 2010
  • 64. Synchronize Generation of your code. Dé Luain 20 Meán Fómhair 2010
  • 65. Documentation Your consumers need documentation Dé Luain 20 Meán Fómhair 2010
  • 66. Development Decisions, business logic, software development Dé Luain 20 Meán Fómhair 2010
  • 67. Q&A Dé Luain 20 Meán Fómhair 2010