Hi Dave,
Simply put, SWORDv2 and the DSpace REST API serve different use
cases. As you noted already, there is some overlap between these use
cases, but they also are different in many ways.
* SWORDv2 is an implementation of the (generic) SWORDv2 protocol:
http://swordapp.org/sword-v2/sword-v2-specifications/ This protocol
is not repository specific, and therefore could be used across
several types of repositories (i.e. not just DSpace) assuming they
all support the protocol. Primarily, this protocol is used for
depositing content (items) into repositories, and providing
updates/changes to previously deposited content. It does not allow
for a way to manage other types of objects (e.g. Collections,
Communities, People, etc.)
* The REST API is DSpace specific. Its goal is to provide a way to
interact with DSpace via non-Java languages or remote systems.
While SWORDv2 concentrates solely on depositing Items into a
repository, the DSpace REST API provides ways to also
manipulate/manage other types of content (e.g. Collections,
Communities) as well as providing ways to browse existing content
(Communities, Collections, Items). Literally, the goal of the REST
API will be to "mirror" as much of the underlying Java API as
possible to provide access to all of the capabilities of DSpace
(it's not quite there yet though).
https://wiki.duraspace.org/display/DSDOC5x/REST+API
There are no plans to replace either of these APIs. DSpace wants to
remain compatible with the SWORD protocol (both v1 and v2) as other
external systems rely on that compatibility. At the same time, we
do see a need for our own unique REST API, as it provides developers
a way to interact with all of DSpace in a non-Java fashion. Both
APIs are maintained and considered stable. The REST API is newer,
but has been receiving frequent bug fixes/enhancements in recent
releases (and more on the way).
As for levels of use, at this time, we don't have any accurate way
to track how many institutions are using each API. But, we do have
developers actively maintaining each and helping to fix bugs when
they do arise (and making enhancements to the capabilities of the
REST API). If it is of any interest, we'd also encourage Symplectic
to feel free to contribute back to enhancing these APIs as needed.
Here's a link to our general Code Contribution Guidelines, if they
are of interest:
https://wiki.duraspace.org/display/DSPACE/Code+Contribution+Guidelines
All in all, which API you utilize may depend entirely on your use
cases. If you are primarily concerned with depositing/updating Items
in DSpace (and other repository systems), then SWORDv2 would be a
good choice. If, however, your needs are beyond simple
deposit/update, then you'll find additional features/options in the
REST API.
Thanks,
Tim
--
Tim Donohue
Technical Lead for DSpace & DSpaceDirect
DuraSpace.org | DSpace.org | DSpaceDirect.org