Once upon a time a guy named Roy Fielding made his disertation about a design aproach called REST. From this point REST is getting very popular. Many service provider using REST to offer developers access to their services i.e. Twitter, Facebook and so on.
But what is this REST thing? It’s a way to publish web services without any overloaded technology like SOAP for example. Every REST service is available under a unique URL and can accessed by everybody. Mostly it sends a response using XML but this is different from service to service. To get the idea of REST let’s take a look at an example. There is a realy huge REST example out there. Probably you using it every day – it’s called the World Wide Web 😉
Yes, the web is nothing else as an landscape full of REST web services. Mostly the services response are HTML but as I said before the response can vary from service to service.
The special thing about REST is that it uses a very well known technology called HTTP. Fielding was involved in the design of HTTP1.1. So REST is nothing else as a way to use HTTP the right way. The HTTP methods (GET, PUT, DELETE, UPDATE) are used for the interaction. The benefit for us developers is, that we can use any programming language to access such a REST service.
And why does ECF want to kiss REST? As I said before, many providers already provide RESTful interfaces. So if ECF has a common API to access a REST based web service it would be much easier to implement providers for these services. On this point GSoC enters the field.
There is a GSoC project called „REST abstraction for ECF“ which is my project for this year. You can read more about this project in my proposal and edit or update ideas. Please feel free to get involved.
The overall goal for this project is to make the Eclipse IDE more social. Sounds terrifying isn’t it? But imagine, you open your workspace and activate a mylyn task which is probably a bug. On the same time the bug id and your name is tweeted on Twitter. So everybody who’s interested in your project can see that you working on a new feature or bug. I think this would be really awesome to improve collaboration. There are many other use cases, if you have any ideas please feel free to add comments. Maybe we can realize it if the project has finished. There is only one hurdle left.
The project has to be nominated. So if you are a mentor for GSoC2009, please vote for this project and on the same time for me. Every vote counts 😉
Thank you all for your interest.