SlideShare a Scribd company logo
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

PDF
PHP 5.3, a walkthrough
PDF
Lams101: Introducing the Learning Activity Management System
PPT
Nba 2009 Credentials Light Final Mv
PPT
ccs
PDF
autozone AZO_2007AR
PDF
telephone data systems 2000AR
DOC
Tevi (laminas)
PHP 5.3, a walkthrough
Lams101: Introducing the Learning Activity Management System
Nba 2009 Credentials Light Final Mv
ccs
autozone AZO_2007AR
telephone data systems 2000AR
Tevi (laminas)

Viewers also liked (18)

PDF
telephone data systems USM_Proxy06
PPT
Somma E Differenza
PPT
Engaged Reading And Writing
PDF
Facebooks new model
PPT
Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1
PDF
hormel foods 2005_Proxy
PDF
OFE draft 9 21 mitchell baker
PPT
Registering & Booking Appointments
KEY
It's Hard Out There For A Geek
PDF
liz claiborne cert_incorp
PDF
advance auto parts 2006AnnualReport
PPT
Veruprezentace
PDF
advance auto parts 2003_ar
PPTX
Abrona 01112010
PDF
molson coors brewing 200710K
PDF
autozone CorpGovernanceOverview020507
PPTX
Byggherreforskriften
PDF
liz claiborne AR2001
telephone data systems USM_Proxy06
Somma E Differenza
Engaged Reading And Writing
Facebooks new model
Hmel Hr Workshop Bbp1 Tm 15012009 Ver1.1
hormel foods 2005_Proxy
OFE draft 9 21 mitchell baker
Registering & Booking Appointments
It's Hard Out There For A Geek
liz claiborne cert_incorp
advance auto parts 2006AnnualReport
Veruprezentace
advance auto parts 2003_ar
Abrona 01112010
molson coors brewing 200710K
autozone CorpGovernanceOverview020507
Byggherreforskriften
liz claiborne AR2001
Ad

More from David Coallier (16)

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

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