Best Practices for HTTP API evolvability

REST is the architectural style of the Web, and closely related to REST is the concept of a HTTP API. A HTTP API is a programmer-oriented interface to a specific service, and is known by other names such as a RESTful service contract, resource-oriented architecture, or a URI Space.

I say closely related because most HTTP APIs do not comply with the uniform interface constraint in it’s strictest sense, which would demand that the interface be “standard” – or in practice: Consistent enough between different services that clients and services can obtain significant network effects. I won’t dwell on this!

One thing we know is that these APIs will change, so what can we do at a technical level to deal with these changes as they occur?


Jargon in REST

Only by increasing the quality of agreements and understanding between humans can our machines come to communicate more effectively and with reduced effort. It is the task of humans to reduce the jargon that exists in our agreements, to increase our coupling to independently-defined communication facets, and to reduce our coupling to service-specific or inventory-specific facets.


B2B Applications for REST’s Uniform Contract constraint

Instead of defining a service contract in terms of special purpose methods and parameter lists only understood by that particular service, we want to build up a service contract that leverages methods and media types that are abstracted away from any specific business context. REST-compliant service contracts are defined as collections of lightweight unique “resource” endpoints that express the service’s unique capabilities through these uniform methods and media types.


implementing-rest

This is a place for exploring aspects of implementing applications using the REST architectural style. This may include statements about existing frameworks and libraries, general discussions about the nature of the style and how it may be expressed and/or encouraged via a programming framework, etc.


Doc – OpenRasta

OpenRasta is a resource-oriented framework for .NET enabling easy ReST-ful development of web sites and services. OpenRasta is designed to run on .net 2.0 and above, and can co-exist peacefully with your existing ASP.NET and WCF deployments.


REST in Windows Communication Foundation (WCF)

Preview 2 posted to CodePlex, adding new client capabilities that we think should really make client-side REST development easier. Chief among the new functionality included in Preview 2 is a new class that provides a staged pipeline model for requesting resources over the web. Using this new HTTP client class allows the developer to plug into the various stages of communication to handle custom authentication, caching, and fault handling outside of the client’s application logic.


REST != HTTP


A lengthy but interesting rant on the abuse of REST as hype word.
Too many API’s that are called REST have nothing to do with it. They’re mostly simple replacements for SOAP in RPC-based architectures.


Yahoo! Music API – YDN

The Yahoo! Music API gives developers access to the Yahoo! Music catalog of artists, albums, tracks, videos, ratings and more. It provides numerous ways to browse the catalog: through charts, search, similarities, genres, artists, and user recommendations and ratings. Adding content to your site becomes simple when using our API and video player.


RESTful Design Guidelines

The biggest problem with applying the Web Architecture for enterprise systems is that we have no broad community (to my knowledge) that’s experimenting in media types to help solve problems that are common inside enterprises. That, I think, is a cultural and psychological limitation, of both the REST community and enterprise developers — and not due to the Web Architecture being inappropriate for enterprise systems-of-systems interaction.

Load More