mirror of
https://github.com/ilri/dspace-statistics-api.git
synced 2024-06-29 09:33:47 +02:00
Alan Orth
4cf8656b35
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.
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# 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](https://github.com/moonlitesolutions/SolrClient/issues/79). Requires PostgreSQL version 9.5 or greater for [`UPSERT` support](https://wiki.postgresql.org/wiki/UPSERT).
|
||
|
||
## 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 `/items` — return views and downloads for all items that Solr knows about¹. Accepts `limit` and `page` query parameters for pagination of results.
|
||
- GET `/item/id` — return 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](https://www.gnu.org/licenses/gpl-3.0.en.html).
|