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 eaca5354d3
app.py: Iterate directly on cursor
We don't need to create an intermediate variable for the results of
the SQL query because psycopg2's cursor is iterable.

See: http://initd.org/psycopg/docs/cursor.html
2018-09-27 11:03:44 +03:00
contrib contrib/dspace-statistics-indexer.timer: Fix syntax 2018-09-25 23:07:03 +03:00
.gitignore Update docs to remove SQLite stuff 2018-09-25 00:56:01 +03:00
.travis.yml .travis.yml: Add Python 3.7 2018-09-25 12:17:20 +03:00
app.py app.py: Iterate directly on cursor 2018-09-27 11:03:44 +03:00
CHANGELOG.md CHANGELOG.md: Add note about ujson 2018-09-27 09:53:42 +03:00
config.py Use PostgreSQL instead of SQLite 2018-09-25 00:49:47 +03:00
database.py database.py: Use one line for psycopg2 imports 2018-09-26 22:23:24 +03:00
indexer.py indexer.py: Use ujson instead of json 2018-09-27 09:51:40 +03:00
LICENSE.txt Add GPLv3 license 2018-09-18 14:16:07 +03:00
README.md README.md: Add note about systemd units for deployment 2018-09-27 09:26:47 +03:00
requirements.txt requirements.txt: pip freeze 2018-09-27 09:53:16 +03:00
solr.py Refactor Solr components 2018-09-23 13:24:30 +03:00

DSpace Statistics API

A simple REST API to expose Solr view and download statistics for items in a DSpace repository. This project contains a standalone indexing component and a WSGI application.

Requirements

Installation

Create a virtual environment and run it:

$ python -m venv venv
$ . venv/bin/activate
$ pip install -r requirements.txt
$ gunicorn app:api

Deployment

There are example systemd service and timer units in the contrib directory.

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). Returns HTTP 404 if an item id is not found.

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

Todo

  • Add API documentation
  • Close up DB connection when gunicorn shuts down gracefully
  • Better logging
  • Tests
  • Check if database exists (try/except)

License

This work is licensed under the GPLv3.