Core to write deep APIs using a module's tree
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for halfapi-0.6.28rc2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f39528c9aef4ad560de53ae21ee30af2dc05578b2815f64f63f9b158bbef250b |
|
MD5 | e2ab5f9bcde050922850bb82d1756c9d |
|
BLAKE2b-256 | 0748ac1933b69ce518184f18aca6fc03bab9477a96d6d01edd60a6509da1382b |