My last post was twelve months ago today. And since then I have never worked harder nor have had more fun doing so than I have in helping to create TriSano. Today is also auspicious in that we will cut 1.0 RC2 in a few hours. All in all, it seems like a good time to start blogging again.
This time, however, I have a plan.
Yes, I’m still a proponent of REST. More so than ever, in fact. But my proselytizing days are over. For the next bit of time I plan to take a more pragmatic approach to assisting others to design and build scalable, resilient, Web APIs by showing step by step and line by line how to build a RESTful application and why.
But we won’t build yet another blogging application or social networking, Web 4.0 thingy. What’s needed here is an example of a typical, erm, enterprise application. Problem is, many enterprise applications are industry specific. Such things as trading applications, life insurance applications, loan management applications. What’s more, these kinds of applications are way too complicated to be used for example purposes. But there’s one application I can think of, one I used when explaining REST as a Burton Group consultant, that exemplifies most typical enterprise use cases and is universally understood: expense report management system. It’s got it all: it’s reasonably straightforward, it’s got typical database-oriented functionality, there are stateful resources (an expense report can be open, submitted, approved, etc.), authentication and authorization requirements, and, if we get this far, integration.
I have not already designed or built this application. Instead, we’ll be nice and lean and refine things as we go along. I’ll be using Rails for this, which some might find un-enterprisey, but one fight at a time. If you’re not using Rails or something similar for enterprise Web applications, well, get over it. There’s no more excuses. Besides Rails is something I’m currently familiar with, it’s got REST baked right in, and, honestly, it works. That and we have all these exciting things happening these days with Rack and Metal and Merb and so on.
So, for the next few months, I hope you follow along and contribute as together we build a RESTful enterprise expense reporting system. I will most likely host the code over on Google Code, and will keep the text distinct from this blog. Comments, of course, are extremely welcome. Those related to REST and Rails especially so. Just bear in mind that this project will be starting small and building. So if you see, for instance, that I’ve not used ETags where I should have, then that’s likely because I haven’t gotten there yet. That said, if it looks like I’ve covered a topic, and it’s wrong or could be better, then, by all means, correct me. All content will be licensed under the most liberal of Creative Commons licenses, the Attribution license.
Good to be back. Talk soon