1
0
mirror of https://github.com/ilri/dspace-statistics-api.git synced 2024-11-22 14:25:01 +01:00
A simple REST API to expose Solr view and download statistics for items in a DSpace repository.
Go to file
Alan Orth 4cf8656b35
Change / route to /items
I think it's more obvious if the "all items" route is plural. Also,
this will allow me to eventually put documentation at the root.
2018-09-25 11:34:07 +03:00
contrib contrib: Update environment settings in system units 2018-09-25 01:10:14 +03:00
.gitignore Update docs to remove SQLite stuff 2018-09-25 00:56:01 +03:00
.travis.yml Add .travis.yml 2018-09-25 11:08:01 +03:00
app.py Change / route to /items 2018-09-25 11:34:07 +03:00
CHANGELOG.md CHANGELOG.md: Add note about requirements.txt and Travis CI 2018-09-25 11:09:02 +03:00
config.py Use PostgreSQL instead of SQLite 2018-09-25 00:49:47 +03:00
database.py database.py: Use psycopg2.extras.DictCursor 2018-09-25 02:06:29 +03:00
indexer.py Update string substitution format 2018-09-25 02:19:29 +03:00
LICENSE.txt Add GPLv3 license 2018-09-18 14:16:07 +03:00
README.md Change / route to /items 2018-09-25 11:34:07 +03:00
requirements.txt Add requirements.txt 2018-09-25 11:02:50 +03:00
solr.py Refactor Solr components 2018-09-23 13:24:30 +03:00

DSpace Statistics API

A quick and dirty REST API to expose Solr view and download statistics for items in a DSpace repository.

Written and tested in Python 3.5 and 3.6. SolrClient (0.2.1) does not currently run in Python 3.7.0. Requires PostgreSQL version 9.5 or greater for UPSERT support.

Installation

Create a virtual environment and run it:

$ virtualenv -p /usr/bin/python3.6 venv
$ . venv/bin/activate
$ pip install -r requirements.txt
$ gunicorn app:api

Using the API

The API exposes the following endpoints:

  • GET /itemsreturn views and downloads for all items that Solr knows about¹. Accepts limit and page query parameters for pagination of results.
  • GET /item/idreturn views and downloads for a single item (id must be a positive integer).

¹ We are querying the Solr statistics core, which technically only knows about all items that have either views or downloads.

Todo

  • Add API documentation
  • Close up DB connection when gunicorn shuts down gracefully
  • Better logging
  • Return HTTP 404 when item_id is nonexistent
  • Tests

License

This work is licensed under the GPLv3.