I'm developing out replacements for our company's web service stack.
The current stack was developed using SOAP and had some REST endpoints manually hacked in. It's a maintenance nightmare.
I can use any language, tech, and framework as long as it it fits the goal.
Requirements are:
- easy for serving up RESTful services
- uses an MVC model
- supports injecting middle layers to do authentication (OAuth and Basic Auth) around calls (preferably in a declarative way)
- makes it easy to do JSON, JSONP, and Plain ol' XML (Simple XML) type serialization of the return data
- preferably has built in caching control and built in E-Tags support
- preferably using a statically typed language but this doesn't matter if the amount of code I have to write is dramatically less
- it would be awesome to have a framework that supports doing microthreaded/epoll type HTTP handling so I can easily support HTTP long polling, but this isn't a requirement
So far I've looked at:
- .NET (C#)
- ASP.NET MVC (simple MVC framework, would have to add the missing pieces manually to fit my requirements)
- Monorails (simple MVC framework, less supported)
- WCF (unfortunately it takes a lot of overriding to force it into submission to work nicely for consumption on clients not using WCF themselves)
- Python
- Pylons (top of my list right now, but it lacks easy XML serialization)
- DJango (more traditional web framework than REST framework)
- Scala (still new but big startups are using it)
- Ruby on Rails (doesn't scale the way I like)
Any other ideas or thoughts?