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.12.tar.gz
(18.8 kB
view hashes)
Built Distribution
Close
Hashes for iii_api_helper-0.0.12-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ce9813b178d45913197031e7426fa3b447b9bdc2045463949dea53c6c5eaf10 |
|
MD5 | ca3f555760503672ca828b16c062bc61 |
|
BLAKE2b-256 | 7d9244be2c528b9421292126e61657fa6c15e3f29301ce94e2a9ac887b34908c |