Wednesday, May 28, 2008

Fingers in many API's

Firstly, I love API's. When you don't have an API on the web you lock much of the data users may wish to move around and share.

I have previously documented my concerns with the API/Data issues when all this data is stored (ala Google maps, facebook etc) in write-only API's and getting it back has a whole bunch of legal (often non-commercial) issues associated with it.... even tho it's YOUR data.

However, let's move away from the legal stuff for a few minutes. There is some concern at the Yahoo Maps API may have changed somewhat and more than a few users are suddenly experiencing issues with it and don't really know where to go next.

THIS is where i really DO see issues with API's on the web. You write a nice map annotation system, store all the data but suddenly the mapping API you are basing this content on breaks... and with it your business is screwed. This is of course not only an issue in mapping - it extends to any business using a 3rd party API as a core part of its application.

I had commented on a post by Dave Winer on data portability that ...
You DO need API's but they need to be balanced in a distributed sense so
you can get to your data through a common API no matter where it is. Sure,
Amazon is a solution, but in a pure web sense it would be nice if your data were
encrypted and stored in a quasi distributed fashion with storage servers YOU
decide to trust. Complex, but i don't want one person owning all my data.

In other words, i don't mind the API's as they let me get to the data... my issue is that i believe the data itself should be separate from the API's and the data should be distributed. Sure, it's a nirvana, but i'd like services to be the cool stuff that makes you use a product and not the data it holds. So if two mapping services agree on a baseline common annotation API, then i can easily switch between them if required - both of them sharing data but perhaps doing slightly different things with it.

Amazon has great web service storage services, but the first thing i did was wrote my own API that translates my requests to Amazon requests. It means in a second i can change the storage server i am using. Data replication is trickier but achievable.

We are trying out some ideas at - in the lab at the moment but we'll see how things progress, but i will be exploring how to provide an API that allows users to move the data they have anywhere they wish, even FOAF files are a nice start!

1 comment:

Danny said...

not sure where I found it, nice quote on (RDF) Linked Data/SPARQL : "any data one API"