hydrus is a set of Python based tools for easier and efficient creation of Hypermedia driven REST-APIs. hydrus utilises the power of Linked Data to create a powerful REST APIs to serve data. hydrus uses the Hydra(W3C) standard for creation and documentation of it's APIs.
Start-up the demo
- with Docker and docker-compose installed, run
docker-compose up --build
- open the browser at
You should be displaying the example API as served by the server.
Add your own Hydra documentation file
To serve your own Hydra-RDF documentation file:
- create a
doc.pyfile as the ones in
examples/directory containing your own ApiDoc
- set the
docker-compose.yml. This should the relative path from the project root
- start-up the demo as above.
You should be displaying your API as served by the server.
Table of contents
hydrus supports the following features:
- A client that can understand Hydra vocabulary and interacts with a Hydra supporting server to basic CRUD operations on data.
- A generic server that can serve required data and metadata(in the form of API documentation) to a client over HTTP.
- A middleware that allows users to use the client to interact with the server using Natural Language which is processed machine consumable language. (under development)
The system is built over the following standards and tools:
- Flask a Python based micro-framework for handling server requests and responses.
- JSON-LD as the preferred data format.
- Hydra as the API standard.
- SQLAlchemy as the backend database connector for storage and related operations.
Apart from this, there are also various Python packages that hydrus uses. Using
python setup.py install installs all the required dependencies.
NOTE: You'll need to use
python2. Hydrus does not support python < 3.6
To run a demo for hydrus using the sample API, just do the following:
- Clone hydrus:
git clone https://github.com/HTTP-APIs/hydrus cd hydrus
- Install a Python virtual environment using:
python3.7 -m venv .venv
virtualenv -p python3.7 .venv
- Install hydrus using:
source .venv/bin/activate pip install -r requirements.txt python setup.py install
NOTE: there is an alternative way to install dependencies with
pip3 install poetry poetry install
This is mostly used to check dependencies conflicts among packages and to release to
After installation is successful, to run the server:
The demo should be up and running on
- To run formatter:
pip install black && black *.py
- To test for formatting: