Hi,
I'd like to suggest using JAX-RS (JSR 311) to implement the proposal.
The spec has already 3 implementations: Jersey (RI), Restlet, and
Apache CXF.
Cheers,
ias
2008. 04. 10, 오전 3:56, Jun Yang (杨骏) 작성:
Hi all.
We would like to propose an implementation for "A modest proposal
for an OpenSocial RESTful API".
We propose the following:
Use Apache Abdera as the basis of the reference server implementation
Add a JsonCParser to support input in JSON-c format (JSON-c for
compact JSON format as specified in the API spec, not a new MIME type)
Add a JsonCWriter to support output in JSON-c format
Add an OpenSocial API (Person, Activity and AppData, Java version
under org.apache.shindig.social.opensocial) adapter to integrate
with existing API implementation and keep the same interface on the
backend and the client
for the following reasons:
The RESTful API proposal supports a clean and natural JSON format
(JSON-c) as well as AtomPub. Apache Abdera is an open source
reference implementation of AtomPub that offers most of the
functionality we need. Reusing it seems to be natural choice
Abdera already supports input in Atom. We need to add support for
input in JSON-c
Abdera already supports output in Atom (as well as a JSON format).
We need to add support for output in JSON-c
Abdera's support for adapters that translate from a foreign data
format and protocol into its Feed Object Model (FOM) comes handy to
support existing data sources such as relational databases and
existing implementation of OpenSocial APIs. Existing OpenSocial
APIs are very close to Atom's model and can be adapted easily
We have includes two diagrams as illustration of the architecture of
the proposed implementation. Diagram 1 shows the generic
architecture. Those components in italics are to be written.
Diagram 2 shows the use of two adapters, iBATIS (existing in Abdera)
to integrate with relational databases, and OpenSocial API adapter
(to be written), to integrate with existing OpenSocial backend.
Please review and comment. Thanks!
Vasu Nori and Jun Yang