Skip to main content

Custom Sphinx extension for embedding RapiDoc in your documentation

Project description

Sphinx-RapiDoc

PyPI version Python Versions License: MIT

A Sphinx extension that integrates RapiDoc to render beautiful, customizable, and interactive API documentation from OpenAPI/Swagger specifications.

Features

  • 🚀 Quick and easy integration with Sphinx documentation
  • 🎨 Customizable themes (light/dark)
  • 🔄 Multiple rendering styles (read/view/focused)
  • 🔒 Support for authentication
  • ⚡ Interactive API testing interface
  • 📱 Responsive design
  • 🔍 Search functionality
  • 📖 Support for OpenAPI v2.0 (Swagger) and v3.0

Installation

Install the package using pip:

pip install sphinx-rapidoc

Or install directly from GitHub for the latest version:

pip install git+https://github.com/TirthS24/sphinx_rapidoc

Quick Start

  1. Add sphinx_rapidoc to your Sphinx extensions in conf.py:

    extensions = [
        # ... your other extensions
        'sphinx_rapidoc'
    ]
    
  2. Create a new RST file (e.g., api.rst) with the RapiDoc directive:

    API Documentation
    ================
    
    .. rapidoc::
        :spec-url: https://api.example.com/openapi.json
        :theme: light
        :render-style: view
    
  3. Include your RST file in index.rst:

    .. toctree::
       :maxdepth: 2
       :caption: Contents:
    
       api
    
  4. Build your documentation:

    make html
    

Configuration Options

Directive Options

Option Description Default Values
spec-url URL to OpenAPI/Swagger specification None Valid URL
theme UI theme light light, dark
render-style Documentation rendering style view view, read, focused

Examples

Basic Usage

.. rapidoc::
    :spec-url: http://127.0.0.1:5500/src/petstore.yml
    :theme: light
    :render-style: view

Dark Theme with Read Style

.. rapidoc::
    :spec-url: http://127.0.0.1:5500/src/petstore.yml
    :theme: dark
    :render-style: read

Screenshots

Endpoint and Authentication Sections

Endpoint and Authentication sections

Sample GET Request Interface

Sample GET Request

Requirements

  • Python 3.9 or higher
  • Sphinx 2.0 or higher
  • Valid OpenAPI/Swagger specification (JSON or YAML format)
  • Web browser with JavaScript enabled

Common Issues and Solutions

CORS Errors

If you encounter CORS errors, ensure that:

  1. Your API specification URL is accessible from the hosted server
  2. The server hosting your API specification has appropriate CORS headers
  3. You're using HTTPS if your documentation is hosted on HTTPS

Specification Not Loading

  • Verify that your specification URL is publicly accessible
  • Check if the URL returns valid JSON/YAML in OpenAPI/Swagger format
  • Ensure your specification follows OpenAPI standards

Contributing

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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • RapiDoc for the awesome API documentation renderer
  • Sphinx for the excellent documentation generator

Support

If you encounter any issues or have questions, please:

  1. Check the Common Issues section
  2. Open an issue on GitHub
  3. Contact the maintainers

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

sphinx_rapidoc-0.1.2.tar.gz (225.9 kB view details)

Uploaded Source

Built Distribution

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

sphinx_rapidoc-0.1.2-py3-none-any.whl (225.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sphinx_rapidoc-0.1.2.tar.gz
  • Upload date:
  • Size: 225.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for sphinx_rapidoc-0.1.2.tar.gz
Algorithm Hash digest
SHA256 295601d4f0150c4e76205869b84c5eeeb0ca39de973dbe1632de9c8896d1e6ea
MD5 605d582889745ecd5221e1549898d3c3
BLAKE2b-256 503abcc1caf6cee43e5c759916c1860a71b4f011c5f604518b45940b639f9e91

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sphinx_rapidoc-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 225.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for sphinx_rapidoc-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e31df48a4ea778a447a62f7588dad5bbb0a06ea2ab6ae54f1e31c5135112ce5d
MD5 778916dac3ee0ac72fd3b23ec97550ad
BLAKE2b-256 8c65e583154b86879d0899638ac796bfdc558a7ee18c972f81c45b11cf3057a3

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