Metadata-Version: 2.1
Name: halfapi
Version: 0.5.8
Summary: Core to write deep APIs using a module's tree
Home-page: https://github.com/halfAPI/halfapi
Author: Maxime ALVES
Author-email: maxime@freepoteries.fr
License: GPLv3
Project-URL: Source, https://github.com/halfAPI/halfapi
Keywords: web-api development boilerplate
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: PyJWT (>=2.0.1)
Requires-Dist: starlette (<0.15,>=0.14)
Requires-Dist: click (<8,>=7.1)
Requires-Dist: uvicorn (<1,>=0.13)
Requires-Dist: orjson (<4,>=3.4.7)
Requires-Dist: pyyaml (<6,>=5.3.1)
Requires-Dist: timing-asgi (<1,>=0.2.1)
Provides-Extra: tests
Requires-Dist: pytest ; extra == 'tests'
Requires-Dist: requests ; extra == 'tests'
Requires-Dist: pytest-asyncio ; extra == 'tests'
Requires-Dist: pylint ; extra == 'tests'

# HalfAPI

Base tools to develop comlex API with rights management.


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


## API Testing

@TODO


### Example

Check out the [sample project](https://github.com/halfAPI/halfapi_sample_project)
that helps you to build your own domain.


## Development

@TODO


