maxime 7b6d9e994a | ||
---|---|---|
conf | ||
halfapi | ||
scripts | ||
tests | ||
.gitignore | ||
.gitlab-ci.yml | ||
CHANGELOG.md | ||
Dockerfile | ||
LICENSE.txt | ||
MANIFEST.in | ||
Pipfile | ||
Pipfile.lock | ||
README.md | ||
optional-requirements.txt | ||
pyproject.toml | ||
pytest.ini | ||
requirements.txt | ||
setup.cfg | ||
setup.py |
README.md
HalfAPI
Base tools to develop complex API with rights management.
This project was developped by Maxime Alves and Joël Maïzi. The name was chosen to reference HalfORM, a project written by Joël Maïzi.
Dependencies
- python3
- python3-pip
- libgit2-dev
- starlette
- PyJWT
- click
- uvicorn
- orjson
- pyyaml
Configuration
Configure HalfAPI in the file : .halfapi/config .
It's a toml file that contains at least two sections, project and domains.
### Project
The main configuration options without which HalfAPI cannot be run.
secret : The file containing the secret to decode the user's tokens.
port : The port for the test server.
loglevel : The log level (info, debug, critical, ...)
Domains
Specify the domains configurations in the following form :
[domains.DOMAIN_NAME]
name = "DOMAIN_NAME"
enabled = true
prefix = "/prefix"
module = "domain_name.path.to.api.root"
port = 1002
Specific configuration can be done under the "config" section :
[domains.DOMAIN_NAME.config]
boolean_option = false
string_value = "String"
answer = 42
listylist = ["hello", "world"]
And can be accessed through the app's "config" dictionnary.
Usage
Develop an HalfAPI domain by following the examples located in tests/dummy_domain . An HalfAPI domain should be an importable python module that is available in the python path.
Run the project by using the halfapi run
command.
You can try the dummy_domain with the following command.
PYTHONPATH=$PWD/tests python -m halfapi domain dummy_domain
CLI documentation
Use the CLI help.
python -m halfapi --help
python -m halfapi domain --help
API Testing
@TODO
Example
Check out the sample project that helps you to build your own domain.
Development
@TODO