I thought I’d take a quick moment to highlight some work that was done by one of the programmers here at The OSU, Peter Dietz. Peter is a bit of a DSpace wiz and a contributor to the project, and one of the things that he’s been interested in working on has been the development of a REST API for DSpace. You can see the notes on his work on this GitHub pull request: https://github.com/DSpace/DSpace/pull/323.
<sidenote>
Thankfully, I’m at a point in my career where I no longer have to be the individual that has to wrestle with DSpace’s UI development, but I’ve never been a big fan of it. From the days when the interface was primarily JSP to the, it sounded like a good idea at the time, XSLT interfaces that most people use today, I’ve long pined for the ability to separate the DSpace interface development from the actual application, and move that development into a framework environment (any framework environment). However, the lack of a mature REST API has made this type of separation very difficult.
</sidenote>
The work that Peter has done introduces a simple READ API into the DSpace environment. A good deal more work would need to be done around authentication to manage access to non-public materials as well as expansions to the API around search, etc., but I think that this work represents a good first step.
However, what’s even more exciting is the demonstration applications that Peter has written to test the API. The primary client that he’s used to test his implementation is a Google Play application, which was developed utilizing a MVC framework. While a very, very simple client, it’s a great first step I think that shows some of the benefits of separating the interface development away from the core repository functionality, as changes related to the API or development around the API no longer require recompiling the entire repository stack.
Anyway — Peter’s work and his notes can be found as part of this GitHub pull request. https://github.com/DSpace/DSpace/pull/323. Here’s hoping that either through Peter’s work, or new development, or a combination of the two; we will see the inclusion of a REST API in the next release of the DSpace application.
–tr