Message from discussion
moving apis up a (webhook) notch with a POSS service
Received: by 10.223.65.7 with SMTP id g7mr4028095fai.8.1273084709184;
Wed, 05 May 2010 11:38:29 -0700 (PDT)
X-BeenThere: webhooks@googlegroups.com
Received: by 10.213.59.76 with SMTP id k12ls1397038ebh.3.p; Wed, 05 May 2010
11:38:27 -0700 (PDT)
Received: by 10.213.60.75 with SMTP id o11mr1772489ebh.13.1273084706468;
Wed, 05 May 2010 11:38:26 -0700 (PDT)
Received: by 10.213.60.75 with SMTP id o11mr1772488ebh.13.1273084706397;
Wed, 05 May 2010 11:38:26 -0700 (PDT)
Return-Path: <ssri...@gmail.com>
Received: from mail-pz0-f184.google.com (mail-pz0-f184.google.com [209.85.222.184])
by gmr-mx.google.com with ESMTP id 18si9753ewy.8.2010.05.05.11.38.24;
Wed, 05 May 2010 11:38:25 -0700 (PDT)
Received-SPF: pass (google.com: domain of ssri...@gmail.com designates 209.85.222.184 as permitted sender) client-ip=209.85.222.184;
Received: by pzk14 with SMTP id 14so2524805pzk.25
for <webhooks@googlegroups.com>; Wed, 05 May 2010 11:38:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.141.107.16 with SMTP id j16mr4028825rvm.2.1273084703796; Wed,
05 May 2010 11:38:23 -0700 (PDT)
Received: by 10.140.131.17 with HTTP; Wed, 5 May 2010 11:38:23 -0700 (PDT)
Date: Wed, 5 May 2010 11:38:23 -0700
Message-ID: <x2u77c1c1581005051138t84e6c92ap56500ecc2ac5105a@mail.gmail.com>
Subject: [Web Hooks] moving apis up a (webhook) notch with a POSS service
From: S Sriram <ssri...@gmail.com>
To: webhooks@googlegroups.com
X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com:
domain of ssri...@gmail.com designates 209.85.222.184 as permitted sender)
smtp.mail=ssri...@gmail.com; dkim=pass (test mode) header...@gmail.com
X-Original-Sender: ssri...@gmail.com
Reply-To: webhooks@googlegroups.com
Precedence: list
Mailing-list: list webhooks@googlegroups.com; contact webhooks+owners@googlegroups.com
List-ID: <webhooks.googlegroups.com>
List-Post: <http://groups.google.com/group/webhooks/post?hl=en_US>,
<mailto:webhooks@googlegroups.com>
List-Help: <http://groups.google.com/support/?hl=en_US>, <mailto:webhooks+help@googlegroups.com>
List-Archive: <http://groups.google.com/group/webhooks?hl=en_US>
Sender: webhooks@googlegroups.com
List-Subscribe: <http://groups.google.com/group/webhooks/subscribe?hl=en_US>,
<mailto:webhooks+subscribe@googlegroups.com>
List-Unsubscribe: <http://groups.google.com/group/webhooks/subscribe?hl=en_US>,
<mailto:webhooks+unsubscribe@googlegroups.com>
Content-Type: multipart/alternative; boundary=000e0cd13b6e89edd30485dd21ec
--000e0cd13b6e89edd30485dd21ec
Content-Type: text/plain; charset=ISO-8859-1
Hi,
I've been mulling this for some time, so I thought I'd put it out there
to get ideas/comments etc.
S. Sriram
Use case
--------
Joe is cranking up his spiffy new site acme.com and wants to
do something with a web service
s/do something/allow users to add events
s/service/google calendar
s/do something/status update
s/service/twitter
Current scenario
-----------------
1. get api keys,
2. Wade through docs at developer.foo.com,
3. grab oauth code libs,
4. write code,
5. test
The Problem
-----------
Steps 2-5 take time, effort and a reasonably high degree of skill and are
replicated
over and over by each developer on their implementation.
The Solution
------------
ApiApps using webhooks on a POSS server
ApiApps are sinppets of hosted code that encapsulate the access to
various web apis(producers) and are made available to api consumers
via simple http calls.
As an example lets take google calendar.
If acme.com (api consumer) wants the ability to have its event be added into
its customer John's (user) google (api producer) calendar. It needs to
1. Get an oauth token from John
2. Create an api call to 'add event' to John's calendar., test etc.
This is 'high-level programming work' that needs to be done by acme.com
More importantly, besides gcal acme.com would like to connect to multiple
apis each of them requires a separate coding imperative and more 'high-level
programming man-hours' It starts to get expensive very quickly.
Now, if ApiApps provided a 'canned' microsite that
a) used acme.com's api key
b) did the oauth on behalf of acme.com for John and google calendar
c) setup a url that when called 'added the event' to John's calendar
d) Instituted rate-limiting measures etc. and provided for an
upgrade path out of POSS to Paid/hosting etc.
Life for acme.com would be much simpler, foo.com would see a much
greater adoption of its api/services and peace will reign on
earth :-)
How might this work.
------------------------
1. acme.com creates an account with google, gets api credentials
2. acme.com creates an account with ApiApps and submits these credentials.
3. On acme.com's website a link is placed to
http://www.apiapps.org/acme/google/calendar/unique-key
4. User John clicks on this link
5. apiapps receives this request and does a signed api http POST call to
http://www.acme.com/apiapps/start with unique-key as a param.
6. acme.com/apiapps returns a JSON set of params for the google calendar
call i.e. date, event description etc.
7. apiapps - saves this info
8. apiapps than gets google oauth credentials from John (saves that for
future reference)
9. On getting John's credentials, apiapps on behalf of acme makes the
google calendar api call/entry
10. apiapps than sends a confirmation to acme.com/apiapps/finish
11. apiapps redirects John back to acme.com
So, for acme.com to offer google calendar apiservices to its users
required
1. A onetime setup with apiapps
2. Addition of an apiapps link to website where needed
3. Writing 2 url handlers
- acme.com/apiapps/start
which gets called by apiapps and returns a json payload
detailing what needs to be done.
- acme.com/apiapps/finish
which gets called by apiapps with a POST containing confirmation
detils, api call output etc.
This is 'relatively easy' programming work that can be done by a low-level
programmer.
ApiApps builds this out for google, yahoo and the major properties.
ApiApps provides a 'api adaptor library building' interface to all
other api producers, so they can build an ApiApp for their service.
Long term sustainable funding for the POSS service should be possible
from api producers interested in seeing more rapid adoption of their
web services and with the raft of new cloud hosting services a migration
path to paid for high volume users should be possible.
--x--
--
You received this message because you are subscribed to the Google Groups "WebHooks" group.
To post to this group, send email to webhooks@googlegroups.com.
To unsubscribe from this group, send email to webhooks+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/webhooks?hl=en.
--000e0cd13b6e89edd30485dd21ec
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<div>Hi,</div><div><br></div><div>I've been mulling this for some time,=
so I thought I'd put it out there</div><div>to get ideas/comments etc.=
</div><div><br></div><div>S. Sriram</div><div><br></div><div>Use case</div>
<div>--------</div><div>Joe is cranking up his spiffy new site <a href=3D"h=
ttp://acme.com">acme.com</a> and wants to=A0</div><div>=A0=A0 =A0do somethi=
ng with a web service</div><div><br></div><div>=A0=A0 =A0s/do something/all=
ow users to add events</div>
<div>=A0=A0 =A0s/service/google calendar</div><div><br></div><div>=A0=A0 =
=A0s/do something/status update</div><div>=A0=A0 =A0s/service/twitter</div>=
<div><br></div><div>Current scenario</div><div>-----------------</div><div>=
1. get api keys,</div>
<div>2. Wade through docs at <a href=3D"http://developer.foo.com">developer=
.foo.com</a>,=A0</div><div>3. grab oauth code libs,</div><div>4. write code=
,</div><div>5. test</div><div><br></div><div>The Problem</div><div>--------=
---</div>
<div>Steps 2-5 take time, effort and a reasonably high degree of skill and =
are replicated</div><div>over and over by each developer on their implement=
ation.</div><div><br></div><div>The Solution</div><div>------------</div>
<div>ApiApps using webhooks on a POSS server</div><div><br></div><div>ApiAp=
ps are sinppets of hosted code that encapsulate the access to</div><div>var=
ious web apis(producers) and are made available to api consumers</div><div>
via simple http calls.</div><div><br></div><div>As an example lets take goo=
gle calendar.</div><div><br></div><div>If <a href=3D"http://acme.com">acme.=
com</a> (api consumer) wants the ability to have its event be added into</d=
iv>
<div>its customer John's (user) google (api producer) calendar. It need=
s to</div><div>1. Get an oauth token from John</div><div>2. Create an api c=
all to 'add event' to John's calendar., test etc.</div><div>
<br></div><div>This is 'high-level programming work' that needs to =
be done by <a href=3D"http://acme.com">acme.com</a></div><div>More importan=
tly, besides gcal <a href=3D"http://acme.com">acme.com</a> would like to co=
nnect to multiple</div>
<div>apis each of them requires a separate coding imperative and more '=
high-level</div><div>programming man-hours' It starts to get expensive =
very quickly.</div><div><br></div><div>Now, if ApiApps provided a 'cann=
ed' microsite that=A0</div>
<div>a) used <a href=3D"http://acme.com">acme.com</a>'s api key</div><d=
iv>b) did the oauth on behalf of <a href=3D"http://acme.com">acme.com</a> f=
or John and google calendar</div><div>c) setup a url that when called '=
added the event' to John's calendar</div>
<div>d) Instituted rate-limiting measures etc. and provided for an</div><di=
v>=A0=A0 upgrade path out of POSS to Paid/hosting etc.</div><div><br></div>=
<div>Life for <a href=3D"http://acme.com">acme.com</a> would be much simple=
r, <a href=3D"http://foo.com">foo.com</a> would see a much</div>
<div>greater adoption of its api/services and peace will reign on</div><div=
>earth :-)</div><div><br></div><div>How might this work.</div><div>--------=
----------------</div><div>1. <a href=3D"http://acme.com">acme.com</a> crea=
tes an account with google, gets api credentials</div>
<div>2. <a href=3D"http://acme.com">acme.com</a> creates an account with Ap=
iApps and submits these credentials.</div><div>3. On <a href=3D"http://acme=
.com">acme.com</a>'s website a link is placed to=A0</div><div>=A0=A0 <a=
href=3D"http://www.apiapps.org/acme/google/calendar/unique-key">http://www=
.apiapps.org/acme/google/calendar/unique-key</a></div>
<div>4. User John clicks on this link</div><div>5. apiapps receives this re=
quest and does a signed api http POST call to</div><div>=A0=A0 <a href=3D"h=
ttp://www.acme.com/apiapps/start">http://www.acme.com/apiapps/start</a> wit=
h unique-key as a param.</div>
<div>6. <a href=3D"http://acme.com/apiapps">acme.com/apiapps</a> returns a =
JSON set of params for the google calendar</div><div>=A0=A0 call i.e. date,=
event description etc.</div><div>7. apiapps - saves this =A0info=A0</div><=
div>8. apiapps than gets google oauth credentials from John (saves that for=
</div>
<div>=A0=A0 future reference)</div><div>9. On getting John's credential=
s, apiapps on behalf of acme makes the</div><div>=A0=A0 google calendar api=
call/entry</div><div>10. apiapps than sends a confirmation to <a href=3D"h=
ttp://acme.com/apiapps/finish">acme.com/apiapps/finish</a></div>
<div>11. apiapps redirects John back to <a href=3D"http://acme.com">acme.co=
m</a></div><div><br></div><div>So, for <a href=3D"http://acme.com">acme.com=
</a> to offer google calendar apiservices to its users</div><div>required</=
div>
<div>1. A onetime setup with apiapps</div><div>2. Addition of an apiapps li=
nk to website where needed</div><div>3. Writing 2 url handlers=A0</div><div=
>=A0=A0 - <a href=3D"http://acme.com/apiapps/start">acme.com/apiapps/start<=
/a></div>
<div>=A0=A0 =A0 =A0 which gets called by apiapps and returns a json payload=
</div><div>=A0=A0 =A0 =A0 detailing what needs to be done.</div><div>=A0=A0=
- <a href=3D"http://acme.com/apiapps/finish">acme.com/apiapps/finish</a></=
div><div>=A0=A0 =A0 =A0 which gets called by apiapps with a POST containing=
confirmation</div>
<div>=A0=A0 =A0 =A0 detils, api call output etc.</div><div>This is 'rel=
atively easy' programming work that can be done by a low-level</div><di=
v>programmer.</div><div><br></div><div>ApiApps builds this out for google, =
yahoo and the major properties.</div>
<div>ApiApps provides a 'api adaptor library building' interface to=
all</div><div>other api producers, so they can build an ApiApp for their s=
ervice.</div><div><br></div><div>Long term sustainable funding for the POSS=
service should be possible=A0</div>
<div>from api producers interested in seeing more rapid adoption of their</=
div><div>web services and with the raft of new cloud hosting services a mig=
ration</div><div>path to paid for high volume users should be possible.</di=
v>
<div><br></div><div>--x--</div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups "=
WebHooks" group.<br />
To post to this group, send email to webhooks@googlegroups.com.<br />
To unsubscribe from this group, send email to webhooks+unsubscribe@googlegr=
oups.com.<br />
For more options, visit this group at http://groups.google.com/group/webhoo=
ks?hl=3Den.<br />