Skip to main content

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.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

halfapi-0.6.31.tar.gz (35.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

halfapi-0.6.31-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file halfapi-0.6.31.tar.gz.

File metadata

  • Download URL: halfapi-0.6.31.tar.gz
  • Upload date:
  • Size: 35.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for halfapi-0.6.31.tar.gz
Algorithm Hash digest
SHA256 c92e78a3763afae230679cd45d7f363f25d35aa8cd3a3558113c37f465401279
MD5 a1347d584fec5ae46b3ce1965155210d
BLAKE2b-256 7a8e533d107cda69ad0e0fe46c3f3d944d03e9f8310e37b16661392bf4e843d5

See more details on using hashes here.

File details

Details for the file halfapi-0.6.31-py3-none-any.whl.

File metadata

  • Download URL: halfapi-0.6.31-py3-none-any.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for halfapi-0.6.31-py3-none-any.whl
Algorithm Hash digest
SHA256 54b89152d77a0e8d60c81a9fd976305064b83ebf58f11dbb366e37d78ae623a7
MD5 5585a52ea565f385c8b7536a39eaef52
BLAKE2b-256 6596282abb18ea0819035a3c21d29bf9a4b5c2939352436f81d81b31ebed17d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page