An ASGI framework to build HTTP API's from a Python module structure.
Go to file
maxime c808ba21ab
[fix] oubli import
2024-05-28 03:40:29 +02:00
conf
halfapi [fix] oubli import 2024-05-28 03:40:29 +02:00
scripts
tests [rc] 0.6.28rc3 - fix bugs and general configuration management cleanup (see changelog) 2023-08-20 23:32:50 +02:00
.gitignore
.gitlab-ci.yml [release] 0.6.29 2023-12-13 11:09:42 +01:00
CHANGELOG.md [release] halfapi 0.6.30 2024-05-28 02:55:17 +02:00
Dockerfile [dockerfile] alpine 3.19 - utilisation d'un venv 2023-12-13 11:37:29 +01:00
LICENSE.txt
MANIFEST.in
Pipfile [deps] starlette v0.37 2024-05-28 02:54:50 +02:00
Pipfile.lock [deps] starlette v0.37 2024-05-28 02:54:50 +02:00
README.md [doc][release] 0.7.0 2023-02-03 12:43:30 +01:00
optional-requirements.txt [lib/responses] ajout format XLSX, car ODS bug avec les dates 2022-05-17 10:30:15 +02:00
pyproject.toml
pytest.ini [deps] starlette 0.31 2023-08-09 14:23:09 +02:00
requirements.txt [release] 0.6.13 2022-03-21 09:51:04 +01:00
setup.cfg
setup.py [release] 0.6.29 2023-12-13 11:09:42 +01:00

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.

https://toml.io/en/

### 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