

Ask HN: Suggest a technology to build a restful API for our wbesite - digamber_kamat

We recently developed a website to collect consumer feedback. The application has become popular with our user base and now we realized that we need to provide a developer API so that others can write clients. More specifically mobile and data mining applications.<p>The currently the site is written in CodeIgniter.<p>Please suggest a framework technology to build the developer API so that<p>1. Fast to develop assuming programmer is experienced in the given technology.
2. Efficient. Should be able to handle minimum of 200 read-only requests per second on a decent server. 
3. Should be worth investing our/developer's time into it. We dont want to work with something outdated.<p>Options that I have in mind are<p>1. Ruby on Rails
2. Django
3. Symfony
4. Facebook's tornedo
5. NodeJS.<p>Which one would be ideal ? (you can suggest beyond these as well).
======
maxdemarzi
Sinatra with Ruby. Pretty good play by play instructions on Paul Dix book
Service-Oriented Design with Ruby and Rails

<http://www.amazon.com/exec/obidos/ASIN/0321659368/1n9867a-20>

~~~
skarayan
My vote goes for Sinatra as well.

------
petercooper
Perhaps I'm misunderstanding what you want, but even as a Rubyist, I wouldn't
recommend Rails for this. If user creation/editing/etc is all handled by your
normal webapp and you only need a fast API endpoint, frameworks like Rails and
Django are overkill. In Ruby, I'd suggest Goliath, instead:
<https://github.com/postrank-labs/goliath/>

I'm not into PHP but I wouldn't be surprised if there's a way to build a
scalable, efficient separate API app in that too.

------
karterk
If you are looking at purely exposing data RESTfully don't go with a heavy
weight framework like Django or Rails. I would suggest going with either
Sinatra or NodeJS (check out <http://expressjs.com> which is a very light
weight, Sinatra like framework for Node).

If you already have experience writing JavaScript, NodeJS will make all the
more sense, as the language barrier will be removed from the picture.

------
mhusby
I may be missing something, but why not just write it ci? Assuming that you
have proper indexes on the tables people will be querying, I cannot see a
request taking more then 100ms. Even if it is 200 you wouldn't need that matt
more instances running, 40 would should be enough.

------
digamber_kamat
Thank you guys for all your suggestions.

