An ASGI framework to build HTTP API's from a Python module structure.
Go to file
Maxime Alves LIRMM 209c6ef40a [ci/cd] add rules to execute build stage 2022-02-10 14:31:30 +00:00
conf [release][0.1.0] First HalfAPI release 2020-07-23 17:54:47 +02:00
halfapi [0.6.7] fix ODSResponse 2022-02-10 10:30:19 +01:00
scripts [0.5.11] 2021-10-04 22:16:27 +02:00
tests [tests] async router renamed to async_router 2022-02-10 12:30:49 +01:00
.gitignore [0.5.3] 2021-06-17 18:53:23 +02:00
.gitlab-ci.yml [ci/cd] add rules to execute build stage 2022-02-10 14:31:30 +00:00
CHANGELOG.md [schemas] always give a list of schemas 2021-12-08 16:42:12 +01:00
Dockerfile [dockerfile] install git 2021-10-12 18:18:54 +02:00
LICENSE.txt [doc] update README and add joel to license 2021-11-16 17:45:40 +01:00
MANIFEST.in [package] fixed some paths 2020-08-27 09:54:48 +02:00
Pipfile [conf] use of toml for halfapi configs. re-enable possibility of multiple domains 2021-12-03 17:25:57 +01:00
Pipfile.lock [tests][lib/responses] format des dates ORJSON + update deps (fix bug dates) 2021-03-12 19:02:23 +01:00
README.md [wip][testfail] update config monodomain - schema gives acls 2021-11-30 18:31:40 +01:00
optional-requirements.txt [deps] optional requirements for ODSResponse 2021-12-03 17:26:14 +01:00
pyproject.toml [deps] Updated dependencies and added files for standard packaging. 2020-07-29 22:07:16 +02:00
pytest.ini [tests] pytest.ini includes tests as pythonpath (because of dummy_domain) 2021-12-01 11:55:56 +01:00
requirements.txt [deps] removed half_orm from dependencies 2020-10-20 08:25:50 +02:00
setup.cfg [deps] Updated dependencies and added files for standard packaging. 2020-07-29 22:07:16 +02:00
setup.py [conf] use of toml for halfapi configs. re-enable possibility of multiple domains 2021-12-03 17:25:57 +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 an ini file that contains at least two sections, project and domains.

### Project

The main configuration options without which HalfAPI cannot be run.

name : Project's name

halfapi_version : The HalfAPI version on which you work

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

The name of the options should be the name of the domains' module, the value is the submodule which contains the routers.

Example :

dummy_domain = .routers

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.

python -m halfapi routes --export --noheader dummy_domain.routers | python -m halfapi run -

API Testing

@TODO

Example

Check out the sample project that helps you to build your own domain.

Development

@TODO