44948be228
env_file uvicorn parameter (specified by --envfile for the halfapi "run" command), added support for default environment variables in pytest.ini |
||
---|---|---|
conf | ||
halfapi | ||
tests | ||
.gitignore | ||
README.md | ||
__init__.py | ||
poetry.lock | ||
pyproject.toml | ||
pytest.ini | ||
requirements.txt |
README.md
halfAPI
This Python-based ASGI application aims to provide the core functionality to multiple API domains.
It's developed at the LIRMM in Montpellier, France.
The name "halfAPI" comes from the deep relationship between it and halfORM, a project authored by Joël Maizi.
how-to
As the project uses the poetry package manager, you first have to install it globally. It will replace virtualenv, pip, etc...
pip install poetry
Be sur to include the bin directory of pip in your PATH.
Then, cd in the halfapi repo, and chose your python version :
poetry env use 3.8
- at this point, every time you come into the folder, when you launch something with "poetry run", it is launched within the virtual environment for this project -
And install the deps :
poetry install
If you need a domain, i.e: organigramme, just add -E organigramme avec install.
poetry install -E organigramme
Then, to run the server :
poetry run halfapi
If you need to launch the test suite (only works if you have pytest installed) :
poetry run pytest
API database
You just need to run the following command to insert the right data into the api database :
poetry run halfapi dbupdate
API database configuration
You can set the HALFORM_SECRET and HALFORM_DSN variables to setup the way you connect to the API database.
HALFORM_SECRET="wtfqwertz" HALFORM_DSN="dbname=api user=api password=api host=127.0.0.1 port=5432"
Warning
For the domains' databases, for now the database connection string is hardcoded (check app.mount_domains).
@TODO find a modular way to configure the database connection for each mounted domain