The Best Web APIs are Web Sites

50 %
50 %
Information about The Best Web APIs are Web Sites
Technology
ove

Published on October 23, 2008

Author: psd

Source: slideshare.net

Description

see: http://blog.whatfettle.com/2007/01/11/good-web-apis-are-just-web-sites/

A Web Friendly API?

Javascript AJAX Python Ruby PHP Perl Curl

One Thing in common ...

They HATE SOAP!

But !OVE The Web

URIs identify things

and they can be anywhere ..

use cool URIs

read RFC 2616

Constrain Verbs • GET / HEAD • POST • PUT YAGNI? • DELETE • OPTIONS

ask IS IT SAFE?

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 | -----------------------------------------------------------

think about representations • HTML • RSS/Atom • XML • JSON • whatever

Warning! You are about to see Naked Protocol Headers

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

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

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>

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>

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

list Recent Calls HTTP GET http://example.com/calls/feed ! 200 OK Content-Type: application/atom+xml <feed xmlns=quot;http://www.w3.org/2005/Atomquot;> <title>Phonebox Calls</title> <link rel=quot;selfquot; href=quot;http://example.com/calls/quot; rel=quot;alternatequot; type=quot;text/htmlquot;/> <updated>2007-01-0911:45:02Z</updated> <author><name>Phonebox</name></author> <id>tag:example.com,2007-01-09:/calls</id> <entry> <link href=quot;http://example.com/user/psd/calls/1234567/quot;/> <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=quot;http://example.com/user/fred/calls/17231667/quot;/> ...

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 ....

Yes, Dear Reader, there's no API as such it's just yet another Web site ..

Surf long and prosper ..

Add a comment

Related presentations

Related pages

Core.security.patterns.best.Practices.and.Strategies.for ...

Core.security.patterns.best.Practices.and.Strategies.for.J2EE.web.Services.and.Identity.management.oct.2005 0131463071 Jul 29, 2015 Documents blackstile
Read more

Top 10 Web APIs — Bridging Today’s Technology - WebDAM

Top 10 Web APIs — Bridging Today’s Technology. Share. Tweet. Ron ... social media sites, ... Our list of best APIs ranges across many types of features ...
Read more

APIs Dashboard | ProgrammableWeb

View the newest or most popular APIs and API categories in the ProgrammableWeb directory, the largest, ... On the Web. John Piela. Financial. 21 hours ago.
Read more

The Top 15 Web APIs For Your Site | Pingable

Pingback: Dating Services » The Top 15 Web APIs For Your Site
Read more

40 useful APIs for web designers and developers ...

Google offers dozens of APIs for web designers and developers. ... the standard web interface tools ... APIs do you use? Are there any sites you’d like ...
Read more

ProgrammableWeb - APIs, Mashups and the Web as Platform

... chronicling the evolution of the global API economy & providing the web’s most ... Twelve APIs have been added to the ProgrammableWeb directory ...
Read more

Web API - Wikipedia, the free encyclopedia

A web API is an application programming interface (API) for either a web server or a web browser. ... "Web APIs". Google Chrome. "Web API reference ...
Read more

50 Most Useful APIs for Developers - Computer Science Zone

Home » Computer Science » 50 Most Useful APIs for ... and are largely how data gets shared across the web. ... Google APIs support most modern sites ...
Read more

ASP.NET Web API | The ASP.NET Site

Using Web API with ASP.NET Web Forms. ... Designing Evolvable Web APIs with ASP.NET. by Glenn Block, Pablo Cibraro, Pedro Felix, Howard Dierking, ...
Read more

hosting : hosting-aspnet-web-api - The ASP.NET Site

How to host your web API. Blog. Sign in Join. Language. ... Deployment and Hosting. Deploy a Web API to an Azure Website; ... Designing Evolvable Web APIs ...
Read more