I’m yet continuously thinking about my career. How do I grow it? And I’ve got many many things to do which I must undertake one at a time.
The current happening in my life is that of REST. I’ve been building a REST API for Dedomenon. Dedomenon is an online structured data storage engine. I was asked to build REST API on top of it. Though I’ve done the job very well as I far as I think but still I’d say that designing and API can never be complete until you put it to real use.
When it comes to real usage, You’re more likely to discover further hidden and indirect use cases which with the designer glasses, you wont be able to see. The concept of REST itself is not very old as it came just in 2000. Incorporation of this as the basis for providing web services in Ruby on Rails only started until 2006. Later, it became clear that Rails was going to favor REST over all the other floating paradigms.
This actually leads to a situation where there’s very little documentation on REST in Rails. Though there’s much but its pretty basic. Building a whole REST API is really something different. When I started out with this for Dedomenon, I felt there must be a short booklet about building REST APIs on top of Rails. An outline that comes to my mind is as under:
- What is REST?
- How do I Identify resources?
- How do I Identity operations on resources?
- How do I map my operations to HTTP verbs?
- Some tools of trade
- How do I expose resources? (Routes etc)
- Who’ll handle those requests? (Possible suggestions, engines plugin, etc)
- How do I response in multiple formats
- Doing so in multiple formats
- Accepting and processing multiple formats
- Writing tests for your REST API
- How do I implement REST Auth? (possible schemes)
- Managing access rights etc
- Advanced topics: Managing consumption rate and other issues
I’m thinking to write all about this in less then 100 pages. But I’m feeling that 100 pages would not be perhaps a doable amount for me. When you sit down to write, only then you realize that you’re not able to write even 25 pages!
Another decision is that I wan to use vim as text editor. For publishing it, either LaTeX or DocBook. Let’s see what do I choose. Most probably LaTeX would be the choice. What do you say?