REST Abstraction APIs for ECF
This document gives complete description of GSoC 2009 Idea created by | Sreyansh Gandhi
Many Service Providers of Social Networking, Web2.0 sites expose REST APIs to let developers leverage their features and build on top of it. These REST APIs are not directly consumed. Some third party vendor provides an REST abstraction layer for those APIs in Java, PHP, etc and developers use these to provide their own features. The disadvantage is that using these third party APIs we create a dependency on these APIs. The project requires development of a REST Layer for ECF by leveraging the Plug-in capabilities of Eclipse. This REST Abstraction Layer will remove the dependency of third party vendor and give ECF complete control of implementation of any REST APIs provided by service providers
Representational state transfer (REST) as per Wikipedia is an architectural style for Distributed hypermedia like WWW. REST has been widely adopted for implementing systems over HTTP infrastructure. Many Service Providers of Social Networking, Web2.0 sites expose REST APIs to let developers leverage their features and build on top of it. Complete definition of REST is available at []
Eclipse is a platform that has been designed from the ground up for building integrated web and application development tooling. Eclipse Communication Framework lets users get more interactive with help of Instant Messaging (IM), Chat, File Sharing, Voice-Over-IP (VOIP), Real-Time Group Collaboration, etc.
REST along with ECF can open a whole gateway of opportunities. For instance, having a REST abstraction layer above ECF will let the developers not rely on any third party service providers to supply Java based REST APIs. This REST layer will also give chance to developers to write plug-ins for any kind of site that exposes REST APIs.
The above image shows what exactly the project will try to accomplish. Eclipse provides developers with powerful concept of Plugins. A REST Abstraction Layer can also be one such Plugin leveraging Eclipse functionalities of exposing Extension Points for others to use. Extension Points will allow users to plug in any http client for using the REST APIs. Most of the service providers expose APIs that will do one of these HTTP operations: GET, POST, PUT, DELETE. Extension point can be provided for these operations that will allow the developers to enter the service provider Links and fetch the data either in XML or JSON format.
Advantages of using Extension Point mechanism will help in separating REST Layer and ECF. This loose coupling will make the REST Layer independent and usable for any other Eclipse Project or Plugin without need of ECF.
Requirements and Challenges
- Implement REST Model (client)
- Provide support for accepting the response in HTML, XML and JSON
- Integration with ECF
- Frequent Interaction with Mentor !!!
- Fit the APIs into Eclipse Plugin Model
- Usability of REST Layer by any other Eclipse Plug-in/ Project
- Managing time as Mentor and Student may not be from same geography !!!
Outcome of Project
- A Prototype using REST Layer using ECF to connect any REST API Service Provider
- API Documentation
and last outcome: A regular contributor to Eclipse Project :)