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."
- Routes can be annotated using the
@api_version_remove
decorator- This essentially says, "This route is removed from version (major, minor) onward, until a new version of the route is defined again."
- 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.5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d3625497787a353c828b153d08cabd16400727907e34ec4e93efbc1847b9d40 |
|
MD5 | 9c0552516f50a05b9891eb9b73e297f7 |
|
BLAKE2b-256 | 845d201c42da73952c3a58b9798c44bad1cd39a99f62df31a12c563dc195339c |