There is a great presentation, not .NET specific, from QCON 2008 about Web APIs by the owner of ProgrammableWeb.com John Musser:http://www.infoq.com/presentations/Open-API-John-Musser
Some key points are listed in this summaryhttp://www.infoq.com/news/2009/02/Open-API-John-Musser
I tend to agree partially with the commenter about it being impossible to follow all of this.
However, I'd rather focus on the overarching theme:
The continuing trend toward REST: standards-based, open, simple APIs based upon HTTP and XML, and a corresponding decrease in APIs based upon SOAP.
Most interesting is he mentions BestBuy's new RESTful API called Remix. You can learn more about that and the query syntax they provide for you to use over URLs here:http://remix.bestbuy.com/docs
Here is an example:
Remix URLs have several components. For example, the following URL has 7 distinct parts:http://api.remix.bestbuy.com/v1/products(manufacturer=nikon&salePrice>200)?sort=RegularPrice.desc&apiKey=<YourApiKey>
- This is the base Remix URL, which is always present.
* v1/ - This is the version of the API which you are querying. Using this, you can have a stable base to build on, even as the api evolves. v1 is the current version of the API, and the one described in these documents.
* products - This is the query type, and indicates what sort of information you're requesting. Remix supports 2 types: stores and products. You can also join the two to view information about store availability.
* (manufacturer=nikon&salePrice>200) - This is a filter applied to the type you request. In this case, the above query will only return products that are manufactured by nikon and have a price greater than $200.
* ?sort=RegularPrice.desc - There are a number of additional parameter which you may specify in your query which will further adjust the results, for example, sorting them, or limiting which attributes are displayed.
* &apiKey=<YourApiKey> - You apiKey grants you access to the Remix service. You'll need to include it with every request.
There is a full summary of QCON here, including links to some .NET and ALT.NET presentations:http://www.infoq.com/articles/qconsf-2008-summary