Skip to main content

Hydra Ecosystem Flagship Server. Deploy REST data for Web 3.0

Project description

hydrus Build Status

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 http://localhost:8080/api/vocab

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.py file as the ones in examples/ directory containing your own ApiDoc
  • set the APIDOC_REL_PATH variable in 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

Features

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)

Requirements

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 python3 not python2. Hydrus does not support python < 3.6

Demo

To run a demo for hydrus using the sample API, just do the following:

  1. Clone hydrus:
git clone https://github.com/HTTP-APIs/hydrus
cd hydrus
  1. Install a Python virtual environment using:
python3.7 -m venv .venv

or:

virtualenv -p python3.7 .venv
  1. 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 poetry:

pip3 install poetry
poetry install

This is mostly used to check dependencies conflicts among packages and to release to PyPi.

After installation is successful, to run the server:

hydrus serve

The demo should be up and running on http://localhost:8080/serverapi/.

Usage

For more info, head to the Usage section of the wiki.

Development

From the hydrus directory:

  • To run formatter: pip install black && black *.py
  • To test for formatting: flake8 *.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hydrus-0.4.4.tar.gz (44.0 kB view details)

Uploaded Source

Built Distribution

hydrus-0.4.4-py3-none-any.whl (55.3 kB view details)

Uploaded Python 3

File details

Details for the file hydrus-0.4.4.tar.gz.

File metadata

  • Download URL: hydrus-0.4.4.tar.gz
  • Upload date:
  • Size: 44.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.6.9

File hashes

Hashes for hydrus-0.4.4.tar.gz
Algorithm Hash digest
SHA256 ed82e644401ea1ac0058759fe2e1f1b715e574867947e5a0f6d54f9110e55982
MD5 565d88560ea94cd96aeff5cc2c01c212
BLAKE2b-256 967b8cd42c7eda5e9c58c177504f57eb2366dcf2339c32e1f0ce24c858a02fbc

See more details on using hashes here.

File details

Details for the file hydrus-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: hydrus-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 55.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.6.9

File hashes

Hashes for hydrus-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 22eabc50c5b48e2cd062675fb5331cd5acf36537f6e123f681ab9e68ce264f3d
MD5 a1385e7351056d64884e4f8bf9983a36
BLAKE2b-256 18a7f994e5893acdec2df0ebe45b7d991050e1178f06eccd1d29c2734e957da1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page