Skip to end of banner
Go to start of banner

DOI API Update [WIP] (Proposal) (2018)

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Work in progress

Background & Motivation

See Meredith Slota (Unlicensed)'s 1-pager and the epic Issue:

  PLFM-4063 - Getting issue details... STATUS

In summary:

  1. It is necessary for us to transition to a new DOI provider
    1. Plan and roles (for example, does UI need to know when we switch/ coordinate that)
    2. who is currently using the current API?
  2. We should overhaul how we handle asynchronous requests to manage a DOI to match how we handle other asynchronous requests
  3. We should implement better ways to handle the collection and submission of metadata (for both practical utility for Synapse users/the scientific community, and compliance with the new provider's standards)

Existing API

Current API can be maintained in the short-term but we should consider deprecating in favor of proposed replacements.

URL
HTTP Type
Description
Response Object
/entity/{id}/doiPUTCreates a DOI for the specified entity. The DOI will associated with the most recent version where applicable.Doi
/entity/{id}/version/{versionNumber}/doiPUTCreates a new DOI for the specified entity version.Doi
/entity/{id}/doiGETGets the DOI status for the specified entity.Doi
/entity/{id}/version/{versionNumber}/doiGETGets the DOI status for the specified entity version.Doi

Proposed API Changes

In addition to the preexisting API:

URLHTTP VerbDescriptionResponse Object
/entity/{id}/doi/async/startPOST

Start a DOI creation job that will attempt to register a DOI with the DOI provider.

Note: The caller must have the ACCESS_TYPE.UPDATE permission on the Entity to make this call.

AsyncJobId

/entity/{id}/doi/async/get/{asyncToken}GET

Asynchronously get the results of a table update transaction started with POST /entity/{id}/doi/async/start

Note: When the result is not ready yet, this method will return a status code of 202 (ACCEPTED) and the response body will be a AsynchronousJobStatus object.

AsynchronousJobStatus

Doi

Note: the Doi object has a DoiStatus field, need to evaluate how that should be handled with asynchronous workers


Questions

Should we force users to provide required metadata to mint a DOI?

Mockups

TBD


Internal Design/Implementation Notes

When we retrieve DOI data for existing Synapse entities (published to Datacite through EZID), the metadata is compliant with Datacite Schema 2.2 (the most recent version is 4.1). We can leave these alone, and force users to supply the metadata required to be compliant with 4.1 if they want to update the info

  • No labels