Skip to content
REST server - Flask Hydra-powered for Semantic Web
Python Other
  1. Python 99.6%
  2. Other 0.4%
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Improve PR template Jan 1, 2019
docs adding images for wiki Jun 16, 2017
examples
hydrus Use class_path instead of class_type, improve tests for classes with … Aug 24, 2019
tests Use class_path instead of class_type, improve tests for classes with … Aug 24, 2019
.gitignore Setting up migrations with Alembic (#389) May 21, 2019
.travis.yml Switching to manual deployment Aug 24, 2019
Dockerfile Add `pip` and `setuptools` update to Dockerfile (#362) Mar 17, 2019
LICENSE Update LICENSE Jul 8, 2019
README.md Duplicated README (#425) Oct 14, 2019
cli.py Version bump to 0.3.0 (#419) Aug 16, 2019
docker-compose.yml
requirements.txt
setup.py Update email Sep 20, 2019

README.md

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:8000/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.

Demo

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

Clone hydrus:

git clone https://github.com/HTTP-APIs/hydrus

Change directory and switch to the develop branch:

cd hydrus

git checkout -b develop origin/develop

Install hydrus using:

pip3 install -r requirements.txt

python3 setup.py install

and run the server using:

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.

You can’t perform that action at this time.