Skip to main content

A REST API for the HPO ontology using PyHPO

Project description

A HTTP REST-API wrapper for PyHPO

Main features

This package allows an easy setup of a REST API to interact with HPO Terms using the PyHPO package.

API Documentation

To see an interactive API documentation, install PyHPO-API, run the app and visit http://127.0.0.1:8000/docs

Installation / Setup

The easiest way to install PyHPO-API is via pip

pip install pyhpoapi

Usage

Getting started

The easiest way to get started is to run the API via

uvicorn pyhpoapi.main:app

Parallel processing

If you want better performance for parallel request handling, you can run PyHPO-API with multiple workers

uvicorn pyhpoapi.main:app --workers 15

CORS

If you need to allow cross-origin requests, you specify CORS settings through environment variables:

export PYHPOAPI_CORS_ORIGINS="*"
export PYHPOAPI_CORS_METHODS="GET,POST"
export PYHPOAPI_CORS_HEADERS="*"

Dev

Getting started for development

Clone the repository

git clone https://github.com/anergictcell/pyhpoapi.git
cd pyhpoapi

Use Docker for development

One way to do this is to run a docker container during development

docker run --rm -v $(pwd):/src -p 8000:8000 -it python:3.9-slim-buster bash

cd src
pip3 install -r requirements.txt
pip3 install -r requirements-dev.txt

python3 -m unittest discover tests

uvicorn --host 0.0.0.0 --reload pyhpoapi.main:app

Or local development without Docker

Create a virtual environment and install requirements in the virtual environment

virtualenv venv_pyhpoapi
source venv_pyhpoapi/bin/activate

pip3 install -r requirements.txt
pip3 install -r requirements-dev.txt

python3 -m unittest discover tests

uvicorn --reload pyhpoapi.main:app

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

pyhpoapi-2.0.0.tar.gz (44.6 kB view hashes)

Uploaded Source

Built Distribution

pyhpoapi-2.0.0-py3-none-any.whl (44.5 kB view hashes)

Uploaded Python 3

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