Introduction Presentation: https://www.overleaf.com/read/wxpdnptnkpsy
Source Code: https://github.com/bag-cnag/biodm
Documentation: https://bag-cnag.github.io/biodm/
BioDM is a fast, modular, stateless and asynchronous REST API framework with the following core features:
-
Provide standard HTTP REST-to-CRUD endpoints from developper provided entity definitions:
- SQLAlchemy tables
- marshmallow schemas
-
Inter-operate services ecosystem:
- Permissions leveraging Keycloak
- Storage leveraging S3 protocol
- Jobs & Visualization leveraging Kubernetes cluster
-> Act as an API gateway and log relevant data.
- Also sets up essentials:
- Liveness endpoint
- Login and token retrieval system
- OpenAPI schema generation through apispec
pip3 install git+https://github.com/bag-cnag/biodm
To run the API you will also need an ASGI server, i.e. uvicorn+uvloop by default:
pip3 install uvicorn uvloop
OR
pip3 install -r src/requirements/dev.txt
Then you may run our example
after populating src/example/.env
with your desired configuration:
cd src/example/
python3 src/example/app.py
Alternatively, if your goal is simply to run example
locally
you may use the following command beforehand in order to deploy the development stack:
docker compose -f compose.yml up --build -d
This stack comes with an interactive swagger-ui
visitable at http://localhost:9080/
once the server is running.
Developed at CNAG
No contributing policy yet. However, issues and pull requests are welcome.
GNU/AGPLv3