Custom Sphinx extension for embedding RapiDoc in your documentation
Project description
Sphinx-RapiDoc
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
-
Add
sphinx_rapidocto your Sphinx extensions inconf.py:extensions = [ # ... your other extensions 'sphinx_rapidoc' ]
-
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
-
Include your RST file in
index.rst:.. toctree:: :maxdepth: 2 :caption: Contents: api
-
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
Sample GET Request Interface
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:
- Your API specification URL is accessible from the hosted server
- The server hosting your API specification has appropriate CORS headers
- 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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Support
If you encounter any issues or have questions, please:
- Check the Common Issues section
- Open an issue on GitHub
- Contact the maintainers
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
295601d4f0150c4e76205869b84c5eeeb0ca39de973dbe1632de9c8896d1e6ea
|
|
| MD5 |
605d582889745ecd5221e1549898d3c3
|
|
| BLAKE2b-256 |
503abcc1caf6cee43e5c759916c1860a71b4f011c5f604518b45940b639f9e91
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e31df48a4ea778a447a62f7588dad5bbb0a06ea2ab6ae54f1e31c5135112ce5d
|
|
| MD5 |
778916dac3ee0ac72fd3b23ec97550ad
|
|
| BLAKE2b-256 |
8c65e583154b86879d0899638ac796bfdc558a7ee18c972f81c45b11cf3057a3
|