I’ve been discovering the wonders of RSpec and Cucumber recently (I know, I know, I’m horribly late to that particular party) and revelling in how the BDD > TDD cycle helps keep one focused on the feature being delivered.
We were discussing HATEOAS whereby a REST client needs no prior knowledge about how to interact with any particular application or server beyond a generic understanding of hypermedia. Your API shouldn’t be fixed but should be discoverable. Clients shouldn’t be locked into a tight coupling with your API but should be able to adapt has it changes.
What also came up was the notion that the mark of a well tested system was that you could through away all of your code and be confident that you could rebuild it completely based on the tests.
So I set myself an exercise. Could I build an API by putting myself in the shoes of a developer discovering the API for the first time. My tools Cucumber and Firefox.