1
0
mirror of https://github.com/ilri/dspace-statistics-api.git synced 2024-12-22 20:52:19 +01:00
A simple REST API to expose Solr view and download statistics for items in a DSpace repository.
Go to file
Alan Orth 8f7450f67a
Use PostgreSQL instead of SQLite
I was very surprised how easy and fast and robust SQLite was, but in
the end I realized that its UPSERT support only came in version 3.24
and both Ubuntu 16.04 and 18.04 have older versions than that! I did
manage to install libsqlite3-0 from Ubuntu 18.04 cosmic on my xenial
host, but that feels dirty.

PostgreSQL has support for UPSERT since 9.5, not to mention the same
nice LIMIT and OFFSET clauses.
2018-09-25 00:49:47 +03:00
contrib contrib: Update some old CGSpace references to DSpace 2018-09-24 00:30:26 +03:00
.gitignore Add indexer.py 2018-09-23 16:47:48 +03:00
app.py Use PostgreSQL instead of SQLite 2018-09-25 00:49:47 +03:00
CHANGELOG.md CHANGELOG.md: Move unreleased notes to version 0.1.0 2018-09-24 16:14:14 +03:00
config.py Use PostgreSQL instead of SQLite 2018-09-25 00:49:47 +03:00
database.py Use PostgreSQL instead of SQLite 2018-09-25 00:49:47 +03:00
indexer.py Use PostgreSQL instead of SQLite 2018-09-25 00:49:47 +03:00
LICENSE.txt Add GPLv3 license 2018-09-18 14:16:07 +03:00
README.md README.md: Add notes about Python and SQLite versions 2018-09-24 17:26:48 +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.6. SolrClient (0.2.1) does not currently run in Python 3.7.0. Requires SQLite version 3.24.0 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 falcon gunicorn SolrClient
$ gunicorn app:api

Todo

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

License

This work is licensed under the GPLv3.