An opinionated wrapper around FastAPI with custom microservice registration
Project description
Picoapi
A wrapper around FastAPI to simplify microservice creation. Very opinionated but also simple to fork if you would like to add your own version of service registration and configuration to FastAPI.
Usage
create a .env file or export the following variables:
ENV variable | Required (default) | Default | Description | Examples | Implemented |
---|---|---|---|---|---|
API_HOST | Yes | The host of the API | myhost|123.123.123.123|localhost|127.0.0.1 | ||
API_PORT | No | 8888 | The port of the API | 8080 | |
API_BIND | Yes | The interface descriptor to bind to | 127.0.0.1|0.0.0.0 | ||
API_TITLE | Yes | The FastAPI title | Example API Name | ||
API_DESCRIPTION | No | A brief Description | The FastAPI description | An Example of a short description about an API | |
API_REGISTER_PATH | Yes | The url of the Keeper registration endpoint (similar to consul) | http://keeper:8100/register | ||
API_HEALTH_PATH | No | The path relative to this FastAPI to call for health checks | /health | ||
API_HEALTH_INTERVAL | No | 300 | The frequency to perform health checks (in seconds) | 300 | |
API_VERSION | No | 0.0.1 | The version of this FastAPI | 0.0.1-alpha | |
API_TAGS | No | The tags for this microservice, used as part of discovery, delimited with ":" (like $PATH) | servicetag1:servicetag2:servicetag3 | ||
API_CORS_ALLOW_ORIGINS | No | * | The CORS allowed origins, delimited with "!" | No | |
API_CORS_ALLOW_METHODS | No | * | The CORS allowed methods, delimited with "!" | No | |
API_CORS_ALLOW_HEADERS | No | * | The CORS allowed headers, delimited with "!" | No |
Example .env file:
# API config
# ==========
API_BIND="0.0.0.0"
API_HOST="localhost"
API_PORT="8888"
API_TITLE="test"
API_DESCRIPTION="test description"
API_VERSION="0.0.1-alpha"
# microservice registration
# =========================
API_KEEPER_URL="http://localhost:8100/register"
API_HEALTH_PATH="/health"
API_HEALTH_INTERVAL="300"
Authors & Contributors
- Patrick Coffey - Author
- Asanga Abeyaratne - Contributor
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
picoapi-0.1.0.tar.gz
(3.1 kB
view details)
Built Distribution
File details
Details for the file picoapi-0.1.0.tar.gz
.
File metadata
- Download URL: picoapi-0.1.0.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46c370a2978e1f502d4cdc34a9eda4e21f136c3139d166123ce793023aba611a |
|
MD5 | 2193bc91bf077601c7eb0df124693300 |
|
BLAKE2b-256 | 5378fc16812908c58239c822bc139b35497d40fb153dd490840fa93516f39472 |
File details
Details for the file picoapi-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: picoapi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6bdf4853617bcf4da29a7202f11e6746818059baec40df9337dd1d44ee40058 |
|
MD5 | 12b74504f7a7bda03c4d4b3bea9b28f4 |
|
BLAKE2b-256 | 83d1d010f5239b9b1fc392c723ac8c70c605a43559964ad2f4023bb26373d6c5 |