The Best Web APIs are Web Sites

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite & 1 Group

    The Best Web APIs are Web Sites - Presentation Transcript

    1. A Web Friendly API?
    2. Javascript AJAX Python Ruby PHP Perl Curl
    3. One Thing in common ...
    4. They HATE SOAP!
    5. But !OVE The Web
    6. URIs identify things
    7. and they can be anywhere ..
    8. use cool URIs
    9. read RFC 2616
    10. Constrain Verbs • GET / HEAD • POST • PUT YAGNI? • DELETE • OPTIONS
    11. ask IS IT SAFE?
    12. understand HTTP methods method safe idempotent semantics resource cacheable ----------------------------------------------------------- GET | X X X X X | HEAD | X X X X X | PUT | X X X | POST | * | DELETE | X X X | OPTIONS | X X X | ----------------------------------------------------------- PROPFIND | X X X X * | PROPPATCH | X X X | MKCOL | * X X | COPY | X X X | MOVE | ? X X | LOCK | X X | UNLOCK | X X X | PATCH | * X X | -----------------------------------------------------------
    13. think about representations • HTML • RSS/Atom • XML • JSON • whatever
    14. Warning! You are about to see Naked Protocol Headers
    15. Content-Negotiation HTTP GET: Accept: application/weatherml+xml; q=1.0, application/xml; q=0.8, text/html; q=0.5 Apache Server .htaccess: AddType application/weatherml+xml wea Options +MultiViews ./index.wea ./index.xml ./index.html
    16. enjoy the free caching HTTP GET http://flickr.com/photos/psd/2450160 If-Modified-Since: Fri, 31 Dec 1999 23:59:59 GMT If-None-Match: 'guid-21343244324' ! HTTP/1.1 412 Precondition Failed
    17. make Phone Call HTTP POST http://example.com/calls Content-Type: application/x-www-form-urlencoded Accept: text/xml; charset=utf-8 callingParty=tel:+447918808 calledParty=sip:Merlin ! HTTP 1.1 201 Created Location: http://example.com/calls/123213 Content-Type: text/xml; charset=utf-8 <callInfo> <callId>http://example.com/calls/123213</callId> <callStatus>Initial</callStatus> </callInfo>
    18. get Call Info HTTP GET http://example.com/calls/123213 Accept: text/xml ! 200 OK Content-Type: text/xml; charset=utf-8 <callInfo> <callId> http://example.com/user/fred/calls/123213 <callStatus> CallInitial </callStatus> <callingParty> tel:+447918880... <calledParty> tel:+447918880... <timeStarted> 2007-01-09 11:45:20 <duration> 502 <terminationStatus> CallNotTerminated </callInfo>
    19. end Call HTTP POST http://example.com/calls/123213 Content-Type: application/x-www-form-urlencoded callStatus=Terminated ! 202 Accepted Location: http://example.com/calls/123213
    20. list Recent Calls HTTP GET http://example.com/calls/feed ! 200 OK Content-Type: application/atom+xml <feed xmlns=\"http://www.w3.org/2005/Atom\"> <title>Phonebox Calls</title> <link rel=\"self\" href=\"http://example.com/calls/\" rel=\"alternate\" type=\"text/html\"/> <updated>2007-01-0911:45:02Z</updated> <author><name>Phonebox</name></author> <id>tag:example.com,2007-01-09:/calls</id> <entry> <link href=\"http://example.com/user/psd/calls/1234567/\"/> <title>Call 1234567</title> <id>tag:example.com/calls/1234567-200701091223313</id> <summary>CallInformation</summary> <updated>2005-10-13T18:30:02Z</updated> </entry> <entry> <link href=\"http://example.com/user/fred/calls/17231667/\"/> ...
    21. Overall http://example.com/calls http://example.com/calls/feed http://example.com/user/paul/calls/feed http://example.com/user/paul/calls/7d6374da5 http://example.com/user/paul/calls/search?callingParty=tel:%3A44791888 http://example.com/sms http://example.com/sms/feed http://example.com/user/fred/sms/7d6374da5 http://example.com/user/fred/sms/inbox/feed http://example.com/user/fred/sms/inbox/7d6374da5 http://example.com/user/fred/sms/inbox?search?from=tel:%3A44791888 ....
    22. Yes, Dear Reader, there's no API as such it's just yet another Web site ..
    23. Surf long and prosper ..

    + Paul DowneyPaul Downey, 2 years ago

    custom

    1477 views, 1 favs, 0 embeds more stats

    see: http://blog.whatfettle.com/2007/01/11/good-web more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1477
      • 1477 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 9
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags

    Groups / Events