[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [higgins-dev] RESTful IdAS
|
Jim,
Thanks for
adding RESTful IdAS to the F2F agenda. It has been a while since we have
talked about that.
-Mary
All,
Some of
you already know that there is a higgins context provider
(org.eclipse.higgins.idas.cp.rest.xml) which hooks up to a web service in order
to access entity data. There is not yet a server committed to higgins that
will service the requests neede by that CP (that is hoped to be a topic of the
next F2F).
However,
there is a server and a client you can get from the bandit project. The
client is a wrapper around the org.eclipse.higgins.idas.cp.rest.xml CP.
The server of course makes use of IdAS to get at the ultimate entity data.
The reason these pieces are at Bandit is because we wanted to allow other
higher-level services (role-based, audit, etc) and we also wanted to play with a
more robust/pluggable way of doing authentication than IdAS currently
allows.
If
you're interested, you can see it in action in a number of different
ways:
1) Do
some GETs against a running server (https://wag.bandit-project.org/otis2/Context and https://wag.bandit-project.org/otis2/Entity/User0) for example.
2)
Deploy your own server and run a sample app. Instructions at http://code.bandit-project.org/trac/wiki/OTIS/Doc/DeployingAnOTISServer#SimplePre-configuredDeployment
3) Get
the tar and run it locally (no need for a pre-installed webApp server).
Instructions at http://code.bandit-project.org/trac/wiki/OTIS/Doc/DeployingAnOTISServer#StandaloneGlassfishDeployment
Good
topics for the F2F would be:
- How do
we build the server in such a way that it's either embeddable in another
servlet, or at least make it extensible such that additional noun handlers can
be plugged in (this is how the OTIS server works).
- How do
we make it handle an array of mime types / content types? Right now, the
OTIS server emits XML, but is (almost) configurable to emit any format.
The client can do content negotiation using the HTTP accept header, and
the server (should) emit something appropriate.
-
Versioning: We also use the content type to specify version info.
That way we can tweak the messages over time to accommodate changes to the
model, etc. For example: curl -I https://wag.bandit-project.org/otis2/Context will show that we reflect the version in the content
type:
Content-Type: application/x-vnd.org.bandit.otis-v1+xml
Jim