Installation, Use and Version Upgrades

Installation

You need git, a relatively new version of nodejs (I am using 8.x) and yarn.

$ git clone https://github.com/punkish/zenodeo.git
$ cd zenodeo
$ yarn

While an instance of this application is running on this website as a demo, it is really designed to be installed and run on one’s own (or a team’s) computer. For one, the demo version is really just a demo and is not guaranteed to be either stable or even running all the time. More importantly, this application will soon provide caching of results. This means your own personal queries will be cached on your computer saving you a tremendous amount of time when doing repeated identical queries.

Use

Once everthing is installed, start the application with $ node index.js. You should see something like the following

$ node index.js
http://localhost:3030
    GET    /                              default route
    GET    /{param*}                      static files
    GET    /about                         about
    GET    /docs                          docs
    GET    /examples                      Examples
    GET    /install                       installation instructions
    GET    /swagger.json
    GET    /swaggerui/{path*}
    GET    /swaggerui/extend.js
    GET    /tos                           terms of service
    GET    /v1                            biosyslit
    GET    /v1/files/{file_id}            files
    GET    /v1/record/{id}                records
    GET    /v1/records                    records

Server running at: http://localhost:3030

Now you can begin querying the API. Below is an example using curl but feel free to use whatever programming language or application you prefer.

$ curl -X GET --header 'Accept: application/json' 'http://localhost:3030/v1'
{
    "updated": "2017-05-23T13:27:06.991331+00:00",
    "id_user": 1161,
    "description": "<p>A community to share publications related to bio-systematics. The goal is to provide</p>\r\n\r\n<ol>\r\n\t<li>open access to publications cited in publications or in combination with scientific names</li>\r\n\t<li>a digital object identifier (DOI) to enable citation of the publications including direct access to its digital representation.</li>\r\n</ol>\r\n\r\n<p>For additional search functionality&nbsp; can be used. This includes also searches in CrossRef, DataCite, PubMed, RefBank, GNUB and Mendeley.</p>\r\n",
    "links": {
        "self": "https://www.zenodo.org/api/communities/biosyslit",
        "html": "https://www.zenodo.org/communities/biosyslit/"
    },
    "created": "2013-11-11T14:14:18+00:00",
    "title": "Biodiversity Literature Repository",
    "id": "biosyslit",
    "last_record_accepted": "2017-05-23T13:27:06.990269+00:00",
    "page": "<p><strong>Upload guideline</strong></p>\r\n\r\n<p>A provisional guideline how to upload is <a href=\"https://drive.google.com/file/d/0B_yrQwn4yBySX3JkTV9RZzZfNUU/view?usp=sharing\">here</a>.</p>\r\n\r\n<p>&nbsp;</p>\r\n\r\n<p>&nbsp;</p>\r\n\r\n<p>&nbsp;</p>\r\n\r\n<p>&nbsp;</p>\r\n\r\n<p>&nbsp;</p>\r\n",
    "curation_policy": "<ol>\r\n\t<li>If an uploaded document has an existing DOI, it will be kept. If there is no DOI, a Zenodo DOI will be minted for the item.</li>\r\n\t<li>Items with Open Access remain Open Access.</li>\r\n\t<li>Items with closed access remain closed. If they are published on 31.12.1999 or earlier, they are made accessible for reading. Please consult your national copyright law for conditions of reuse.</li>\r\n\t<li>To upload publications, please contact <a href=\"mailto:info@plazi.org\">info@plazi.org</a>.</li>\r\n</ol>\r\n"
}

You can get more examples of queries from the docs. So, what can you do with an API? Pretty much whatever you want. See examples for the kind of things you can do with the API.

Version Upgrades

To upgrade the `Zenodeo` API to the latest version, run the following commands

$ git pull
$ yarn
1.5.2
  • Better image layout in examples + link to parent record on Zenodo
1.5.1
  • Added a persistent cache
  • Made the examples page more elaborate
1.0.1
  • Initial version with in-memory cache