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.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:

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,
    cdn_host=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.10.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_cdn_host-0.10.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastapi_cdn_host-0.10.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fastapi_cdn_host-0.10.0.tar.gz
Algorithm Hash digest
SHA256 0b5e949a5712bd829aabd15f0733072479d64c48560150b76707059ee87efc23
MD5 3a01cf7278acd0d0eaed03e87a6f3524
BLAKE2b-256 737ce5ae214a2c4665ea411b713213a67e0ecff4f47d84d4a298322ced20bc43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastapi_cdn_host-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f4563c154e7f789231597320f4ef6866a0cd3af5425322875540d9f1648e1886
MD5 c16a644b10c19df92fdb9ea1583127f9
BLAKE2b-256 35ee49705ec7451b1c52bdedc8f4b15977fb44173e2d9ec95c351794ae5fb6bb

See more details on using hashes here.

Supported by

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