Cookbook

Updating an Existing Entity

  1. Fetch (GET) the existing entity
  2. Create (POST) a new editgroup
  3. Update (PUT) the entity, with the current revision number in the prev edit field, and the editgroup_id set
  4. Submit (PUT) the editgroup for review
  5. Somebody (human or bot) with admin privileges will Accept (POST) the editgroup.

Merging Duplicate Entities

  1. Fetch (GET) both entities
  2. Decide which will be the "primary" entity (the other will redirect to it)
  3. Create (POST) a new editgroup
  4. Update (PUT) the "primary" entity with any updated metadata merged from the other entity (optional), and the editgroup id set
  5. Update (PUT) the "other" entity with the redirect flag set to the primary's identifier, with the current revision id (of the "other" entity) in the prev field, and the editgroup id set
  6. Submit (PUT) the editgroup for review
  7. Somebody (human or bot) with admin privileges will Accept (POST) the editgroup.

Lookup Fulltext URLs by DOI

  1. Use release lookup endpoint (GET) with the doi query parameter in URL-escaped format, with expand=files. You may want to hide abstracts,references for faster responses if you aren't interested in those fields.
  2. If a release hit is found, iterate over the linked file entities, and create a ranked list of URLs based on mimetype, URL "rel" type, file size, or host domain.

Batch Insert New Entities (Bootstrapping)

When bootstrapping a blank catalog, we need to insert 10s or 100s of millions of entities as fast as possible.

  1. Batch create (POST) a set of entities, with editgroup metadata included as query parameters
  2. If not an adminstrator, or the autoaccept flag was not set, the editgroup will need to be submitted and accepted as usual