Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[higgins-dev] RESTful IdAS

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


Back to the top