Skip to main content

CouchDB OpenAPI scheme generator

Project description

๐Ÿš€ CouchDB OpenAPI Scheme Generator

OpenAPI specification generator for CouchDB - Perfect for developing and debugging applications using CouchDB as a backend

GitHub stars GitHub forks GitHub watchers GitHub issues GitHub pull requests

License Python Version Docker OpenAPI

GitHub repo size GitHub code size in bytes GitHub last commit GitHub contributors

Views Visitor Badge


๐Ÿ“‹ Table of Contents


โœจ Features

Feature Description Status
๐Ÿณ Docker Support Quick CouchDB deployment with Docker Compose โœ… Ready
๐Ÿ“„ OpenAPI 3.0 Modern OpenAPI specification generator โœ… Ready
๐Ÿ”ง CLI Tool Easy-to-use command-line interface โœ… Ready
๐Ÿ“Š JSON/YAML Support for both JSON and YAML output formats โœ… Ready
๐Ÿ” Authentication Built-in support for CouchDB authentication โœ… Ready
โšก Fast Setup Get started in minutes โœ… Ready

๐ŸŽฏ Description

This project has been updated for more convenient work with CouchDB and includes:

  • ๐Ÿณ Updated Docker Compose configuration for quick CouchDB deployment
  • ๐Ÿ“„ Modern OpenAPI specification generator for CouchDB API
  • ๐Ÿ› ๏ธ Utilities and tools for interacting with the CouchDB server
  • ๐Ÿš€ Production-ready setup with best practices

๐Ÿ“ฆ Requirements

  • ๐Ÿ Python 3.11 or higher
  • ๐Ÿณ Docker and Docker Compose
  • ๐Ÿ“ฆ uv (Python package manager)

๐Ÿš€ Quick Start

# 1. Clone the repository
git clone https://github.com/SasukeSagara/CouchDB-OpenAPI-scheme-generator.git
cd couchdb-openapi-scheme-generator

# 2. Install dependencies
uv sync

# 3. Start CouchDB
docker-compose up -d

# 4. Generate OpenAPI specification
uv run openapi_generator.py

That's it! ๐ŸŽ‰ Your OpenAPI specification will be generated in couchdb-openapi.json


๐Ÿ’ป Installation

Step 1: Clone the repository

git clone https://github.com/SasukeSagara/CouchDB-OpenAPI-scheme-generator.git
cd couchdb-openapi-scheme-generator

Step 2: Install dependencies

Install dependencies using uv:

uv sync

For development dependencies:

uv sync --dev

๐Ÿ“– Usage

๐Ÿณ Starting CouchDB

Start CouchDB using Docker Compose:

docker-compose up -d

CouchDB will be available at http://localhost:5984

โš ๏ธ Important: Change the password in .env before using in production!

๐Ÿ“„ Generating OpenAPI Specification

Use openapi_generator.py to generate the OpenAPI specification for CouchDB API:

Basic Usage

# Basic usage (local server)
uv run openapi_generator.py

Advanced Usage

# With URL and credentials specified
uv run openapi_generator.py \
  --url http://localhost:5984 \
  --username admin \
  --password your_password

# With custom output file
uv run openapi_generator.py --output couchdb-api.json

# Generate in YAML format
uv run openapi_generator.py \
  --format yaml \
  --output couchdb-api.yaml

# Full example with all options
uv run openapi_generator.py \
  --url http://localhost:5984 \
  --username admin \
  --password your_password \
  --format json \
  --output my-couchdb-api.json

๐Ÿ“‹ Parameters

Parameter Short Description Default
--url -u CouchDB server URL http://localhost:5984
--username - Username for authentication -
--password - Password for authentication -
--output -o Output file name couchdb-openapi.json
--format -f Output format (json or yaml) json

๐ŸŽฎ Running the Main Application

uv run genopenapi_generatorerator.py

๐Ÿ—๏ธ Project Structure

CouchDB-OpenAPI-scheme-generator/
โ”œโ”€โ”€ ๐Ÿ“ couchdb-data/          # CouchDB data (Docker volume)
โ”œโ”€โ”€ ๐Ÿ“ couchdb-etc/           # CouchDB configuration
โ”œโ”€โ”€ ๐Ÿ“„ docker-compose.yml     # Docker Compose configuration
โ”œโ”€โ”€ ๐Ÿ“„ main.py                # Main application file
โ”œโ”€โ”€ ๐Ÿ“„ openapi_generator.py   # OpenAPI specification generator
โ”œโ”€โ”€ ๐Ÿ“„ pyproject.toml         # Python project configuration
โ”œโ”€โ”€ ๐Ÿ“„ uv.lock                # Dependency lock file
โ”œโ”€โ”€ ๐Ÿ“„ .env                   # Environment variables (create this)
โ”œโ”€โ”€ ๐Ÿ“„ .gitignore             # Git ignore rules
โ”œโ”€โ”€ ๐Ÿ“„ LICENSE                # MIT License
โ””โ”€โ”€ ๐Ÿ“„ README.md              # This file

๐Ÿ› ๏ธ Development

Setting Up Development Environment

  1. Clone the repository:

    git clone https://github.com/SasukeSagara/CouchDB-OpenAPI-scheme-generator.git
    cd couchdb-openapi-scheme-generator
    
  2. Install development dependencies:

    uv sync --dev
    
  3. Create .env file:

    cp .env.example .env  # If you have an example file
    # Or create manually with:
    # COUCHDB_USER=admin
    # COUCHDB_PASSWORD=your_secure_password
    
  4. Start CouchDB:

    docker-compose up -d
    
  5. Run tests (if available):

    uv run pytest
    

Code Style

This project follows PEP 8 style guidelines. Consider using:

  • black for code formatting
  • flake8 or ruff for linting
  • mypy for type checking

๐Ÿค Contributing

Contributions are welcome! ๐ŸŽ‰

  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

Contribution Guidelines

  • ๐Ÿ“ Follow the existing code style
  • โœ… Add tests for new features
  • ๐Ÿ“– Update documentation as needed
  • ๐Ÿ› Report bugs using GitHub Issues
  • ๐Ÿ’ก Suggest enhancements using GitHub Discussions

๐Ÿ“ License

This project is distributed under the MIT License. See the LICENSE file for details.

License: MIT


โญ Show Your Support

If you find this project helpful, please consider:

  • โญ Starring this repository
  • ๐Ÿด Forking this repository
  • ๐Ÿ› Reporting bugs
  • ๐Ÿ’ก Suggesting new features
  • ๐Ÿ“– Improving documentation
  • ๐Ÿค Contributing code

Made with โค๏ธ by SasukeSagara

GitHub Open Source

โญ Star this repo if you find it useful! โญ

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

couchdb_openapi_scheme_generator-1.0.0.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file couchdb_openapi_scheme_generator-1.0.0.tar.gz.

File metadata

File hashes

Hashes for couchdb_openapi_scheme_generator-1.0.0.tar.gz
Algorithm Hash digest
SHA256 320be143f04d94f09534d5b98178850651c8a746ec56d719404ab97ce6b690e4
MD5 4fc0d24668fa76872a6afb42a6e850d5
BLAKE2b-256 c7f4b36c7084b7e440e3d5958464518039d3d3349e54adcae9e14bf1aff06019

See more details on using hashes here.

File details

Details for the file couchdb_openapi_scheme_generator-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for couchdb_openapi_scheme_generator-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5fa06e97fe3d26d8830f3f1a1b4ed5dd40d16d046cae62a16dedb12a21aca695
MD5 4c9485f39d1730ec0d9c5f89454fd51c
BLAKE2b-256 04fd9edbbeebea761571bb0e0dda50a43b00ecfcddf6b4b359966523f1d10226

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