III Common FastAPI base.
Project description
III API base
Usage
Config
The later config will override the previous one.
This table shows the predefined environment variables.
Keyword | Type | Default | Description |
---|---|---|---|
DEBUG |
boolean | false | To set the logging as DEBUG state, you can pass debug=True to application too. |
RELOAD |
boolean | false | To auto reload the FastAPI application, you can pass reload=True to run too. |
APP_NAME |
string | Backend API | The application name use on FastAPI. |
from pathlib import Path
from api_helper.config import load_config
# Load config
load_config(Path(__file__).parent / ".env")
# Load default config in the directory (.env)
load_config(Path(__file__).parent)
FastAPI example
To config the FastAPI by env, read the Config section.
from pathlib import Path
from api_helper import FastAPI, success_response
app: FastAPI = FastAPI(base_folder=Path(__file__).parent)
# Optional to setup sentry
app.setup_sentry("sentry_dsn")
@app.get("/")
def home():
return success_response("Hello, World!")
# Start the app and enjoy
app.run("127.0.0.1", 5000)
# Start the app with OpenAPI, for example
app.run(show_swagger=True)
If you want to customize the Logger format, you can pass log_builder
to the FastAPI object.
The following example shows how to customize the logger format.
from pathlib import Path
from api_helper import FastAPI
from api_helper.config import LoggerBuilder
# To customize the logger format, you can pass the log_builder to FastAPI
log_builder: LoggerBuilder = LoggerBuilder(Path(__file__).parent)
log_builder.formatters = {} # For example, we change the formatter to empty
app: FastAPI = FastAPI(base_folder=Path(__file__).parent, log_builder=log_builder)
# Or if you prefer the default, you can extend the default formatter
# For example, you can change the root level to DEBUG with default formatter
log_builder: LoggerBuilder = LoggerBuilder(Path(__file__).parent, config={"root": {"level": "DEBUG"}})
app: FastAPI = FastAPI(base_folder=Path(__file__).parent, log_builder=log_builder)
# Or pass as parameter start with the `logging_` keyword, it will be passed to the LoggerBuilder
# It is the same as the previous example
app: FastAPI = FastAPI(base_folder=Path(__file__).parent, logging_config={"root": {"level": "DEBUG"}})
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
iii_api_helper-0.0.13a0.tar.gz
(19.0 kB
view hashes)
Built Distribution
Close
Hashes for iii_api_helper-0.0.13a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 289cad30584ffc6add761004bb79d3e6a22a7a8ea3f34427b79e5e75bc792694 |
|
MD5 | cc7ba03c75934059af2b15830b29f051 |
|
BLAKE2b-256 | 1bc746cacb365f1cce3d082e769624adc327f09e874711d748122901225ef5a7 |