Skip to main content

Enhanced Swagger UI for FastAPI with tag-based filtering and download links

Project description

FastAPI Swagger Splitter

Enhanced Swagger UI for FastAPI applications with tag-based filtering, download links, and search functionality.

Why?

So that your frontend developer can grab the tag specific OpenAPI json and use it with AI to implement the API calls without overflowing AI context.

Installation

pip install fastapi-swagger-splitter

Quick Start

from fastapi import FastAPI
from fastapi_swagger_splitter import setup_swagger_splitter

# Create your FastAPI app
app = FastAPI(
    title="My API",
    description="API documentation",
    version="1.0.0",
    docs_url=None,  # Disable default docs - we'll use custom one
    openapi_url="/openapi.json",
)

# Setup custom Swagger UI
setup_swagger_splitter(app, swagger_path="/docs")

@app.get("/")
async def root():
    return {"message": "Hello World"}

That's it! Now visit http://localhost:8000/docs to see your enhanced Swagger UI.

Features in Detail

Download Complete OpenAPI JSON

Click the "Complete OpenAPI JSON" link to download the full OpenAPI schema for your API.

Download Tag-Specific OpenAPI JSON

Each tag in your API gets its own download link. Click any tag name to download an OpenAPI JSON file containing only endpoints and schemas related to that tag.

Search Tags

Use the search input to quickly find tags by name. The search is case-insensitive and filters tags in real-time as you type.

API Endpoints

The package automatically creates these endpoints:

  • GET /docs - Custom Swagger UI (or your custom path)
  • GET /docs/json - Complete OpenAPI JSON schema
  • GET /docs/json/{tag} - Tag-specific OpenAPI JSON schema
  • GET /docs/tags - List of all available tags

Customization

Custom Swagger Path

You can customize the Swagger UI path:

setup_swagger_splitter(app, swagger_path="/api-docs")

Now your Swagger UI will be available at /api-docs instead of /docs.

Requirements

  • Python 3.8+
  • FastAPI 0.68.0+
  • Starlette 0.14.0+

Development

# Clone the repository
git clone https://github.com/yourusername/fastapi-swagger-splitter.git
cd fastapi-swagger-splitter

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Changelog

0.1.0 (2024-01-XX)

  • Initial release
  • Custom Swagger UI with download links
  • Tag-based filtering
  • Search functionality

fastapi-swagger-splitter

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_swagger_splitter-0.1.2.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

fastapi_swagger_splitter-0.1.2-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_swagger_splitter-0.1.2.tar.gz.

File metadata

File hashes

Hashes for fastapi_swagger_splitter-0.1.2.tar.gz
Algorithm Hash digest
SHA256 90e3108c2c87f6d1437cd8c71743280121e0da2f6f8b17416002407d51edff92
MD5 cf83d5c004f6b68b278f7bb2da77017e
BLAKE2b-256 77b1e6d0ac42ddac0b1057fa9c0e5efd0fe82ce9d2627b1837f41ccfb70cb479

See more details on using hashes here.

File details

Details for the file fastapi_swagger_splitter-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_swagger_splitter-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 13d284997b529597aff8e10bbb3c05d8c2be54df8c39f5949807a73344679526
MD5 1fe5bdb90cdba491fb07e5b060eb1cf9
BLAKE2b-256 e13be7d0468a141432e420f9c34208bc282301ee0d1131bbe0ec7893bbdb2bc3

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