API versionizer for FastAPI web applications
Project description
FastAPI Versionizer
Credit
This was inspired by fastapi_versioning.
This project fixes some of the issues with fastapi_versioning
and adds some additional features.
Installation
pip install fastapi-versionizer
Examples
You can find examples in the examples directory.
Details
- Routes can be annotated using the
@api_version
decorator- This essentially says, "This route is available from version (major, minor) onward, until a new version of the route is defined."
- Use the
versionize
function on your FastAPI app to perform the versionizing magic- Each version results in a new mounted FastAPI sub-application with a version prefix you define
- Unlike
fastapi_versioning
, this does not return a new FastAPI app, but applies the versioning directly to the app you provide - You can generate a "latest" alias for the latest version using
enable_latest
andlatest_prefix
- You can customize your OpenAPI schemas at runtime using
get_openapi
- This will be used to override the
openapi
function of all versioned FastAPI sub-applications
- This will be used to override the
- You can generate each versioned Swagger page using
get_docs
anddocs_url
- This is useful if you need to want to customize your Swagger HTML using
fastapi.openapi.docs.get_swagger_ui_html
- See the Advanced Example for more details
- This is useful if you need to want to customize your Swagger HTML using
- You can generate each versioned Redoc page using
get_redoc
andredoc_url
- This is useful if you need to want to customize your Redoc HTML using
fastapi.openapi.docs.get_redoc_html
- The usage of this is very similar to
get_docs
- This is useful if you need to want to customize your Redoc HTML using
- You can sort the routes within a version to occur by route-path-name using
sorted_routes
see the Sorted Example for more details. - You can pass additional
kwargs
that will be supplied to each versioned sub-application- Note:
app.title
andapp.description
are automatically supplied to each versioned sub-application - For all other FastAPI parameters, these must be passed via
kwargs
- If you want a custom title and description for each versioned docs page, you can use
get_docs
and/orget_redoc
- Note: If you want docs pages to be generated, you must pass either
docs_url
orredoc_url
as kwargs - Note: If you want to specify custom
responses
, these must be defined on your FastAPI app (not viakwargs
)- See the Advanced Example for more details
- Note:
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
Close
Hashes for fastapi_versionizer-0.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46965becef8d920211c815a32d0a5e6f01ef31898f3e847c2777ba164338e4a8 |
|
MD5 | bbda897867cfa8d496e239b3ed236eee |
|
BLAKE2b-256 | 6dfce422f5bb5a81bf84742af5473b12cc2045941c255dc46ebcdb74660a551b |