Skip to main content

Auto choose the fastest cdn host for fastapi project docs.

Project description

FastAPI CDN host Selector for docs ui

Python Versions LatestVersionInPypi GithubActionResult Coverage Status Ruff security: bandit

Auto find swagger-ui in local files, if exist use them. Otherwise make concurrent http requests by httpx to find out which third part cdn host(cdn.jsdelivr.net/unpkg.com/cdnjs.cloudflare.com/cdn.bootcdn.net/cdn.staticfile.org) is the fastest one.

English | 中文

Install

pip install fastapi-cdn-host

Usage

import fastapi_cdn_host
from fastapi import FastAPI

app = FastAPI()
# include_routes ...

fastapi_cdn_host.patch_docs(app)

See more at:

  • examples/
  • tests/

Detail

  1. Let's say that the default docs CDN host https://cdn.jsdelivr.net is too slow in your network, while unpkg.com is much faster.
import fastapi_cdn_host
from fastapi import FastAPI

app = FastAPI()
fastapi_cdn_host.patch_docs(app)  # Will use `unpkg.com`(or other faster host) to replace the `cdn.jsdelivr.net/npm`
  1. To support offline docs/, put swagger-ui asset files into local directory named static
from pathlib import Path

fastapi_cdn_host.patch_docs(app, Path(__file__).parent.joinpath('static'))

This get the same result of the example in official document: https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/?h=static#self-hosting-javascript-and-css-for-docs

  1. If asset files are ready in private cdn
from fastapi_cdn_host import AssetUrl

fastapi_cdn_host.patch_docs(app, AssetUrl(
    js='http://my-cdn.com/swagger-ui.js',
    css='http://my-cdn.com/swagger-ui.css',
    redoc='http://my-cdn.com/redoc.standalone.js',
    favicon='http://my-cdn.com/favicon.ico')
)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_cdn_host-0.7.4.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

fastapi_cdn_host-0.7.4-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_cdn_host-0.7.4.tar.gz.

File metadata

  • Download URL: fastapi_cdn_host-0.7.4.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/20.6.0

File hashes

Hashes for fastapi_cdn_host-0.7.4.tar.gz
Algorithm Hash digest
SHA256 af3fb05b77d82d883aca6073de8d1070b4328aa8989fee1bf4afb68bbc157e13
MD5 e58f260e49302d24648af5a6521c3ee4
BLAKE2b-256 03fabd4d419989c04cda8482bee3eaa5d82f57ad64177f8615056c8df1c90e5a

See more details on using hashes here.

File details

Details for the file fastapi_cdn_host-0.7.4-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_cdn_host-0.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 aac2812ae9e2659b2b81bc3f4f87e81da8097d60d9e64cfae0a31aaedd258e57
MD5 3fc670a8845974de9c0fd400d25957c6
BLAKE2b-256 8ea989515a9397a127e5b9ba31ceeb5a6fed48e8fe2109df33d001afa0cc67cc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page