https://github.com/jentic/jentic-openapi-tools
Jentic OpenAPI Tools
https://github.com/jentic/jentic-openapi-tools
openapi openapi3 openapi31
Last synced: 15 days ago
JSON representation
Jentic OpenAPI Tools
- Host: GitHub
- URL: https://github.com/jentic/jentic-openapi-tools
- Owner: jentic
- License: apache-2.0
- Created: 2025-09-11T08:28:42.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-27T06:38:57.000Z (about 1 month ago)
- Last Synced: 2026-01-28T19:35:33.216Z (about 1 month ago)
- Topics: openapi, openapi3, openapi31
- Language: Python
- Homepage:
- Size: 1.32 MB
- Stars: 8
- Watchers: 0
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Support: SUPPORT.md
- Notice: NOTICE
Awesome Lists containing this project
README
# Jentic OpenAPI Tools
A comprehensive Python toolkit for parsing, validating, and transforming OpenAPI documents with pluggable backend
architecture.
[](https://discord.gg/yrxmDZWMqB)
[](https://github.com/jentic/jentic-openapi-tools/blob/HEAD/CODE_OF_CONDUCT.md)
[](https://github.com/jentic/jentic-openapi-tools/blob/HEAD/LICENSE)
[](https://badge.fury.io/py/jentic-openapi-tools)
[](https://www.python.org/downloads/)
## Features
- **Pluggable Backend Architecture** - Support for multiple parsing, validation, and transformation strategies via entry
points
- **Type Safety** - Full type hints with comprehensive type checking throughout
- **Multiple Input Formats** - Accept OpenAPI documents from file URIs, JSON/YAML strings, or Python dictionaries
- **Flexible Output Types** - Return results as dictionaries, strings, or custom types
- **Extensible Design** - Easy integration of third-party backends through standard Python entry points
- **Path Security** - Built-in defense against path traversal attacks
- **Production Ready** - Comprehensive test coverage and error handling
## Installation
Install all packages at once using the meta-package:
```bash
pip install jentic-openapi-tools
```
Or install individual packages as needed:
```bash
pip install jentic-openapi-parser
pip install jentic-openapi-validator
pip install jentic-openapi-transformer
```
**Prerequisites:**
- Python 3.11 or higher
- Node.js >=20.19.0 and npm (required for Redocly and Spectral backends)
## Quick Start
### Parsing OpenAPI Documents
```python
from jentic.apitools.openapi.parser.core import OpenAPIParser
# Create parser with default backend
parser = OpenAPIParser()
# Parse from file
doc = parser.parse("file:///path/to/openapi.yaml")
print(doc["info"]["title"])
# Parse from YAML/JSON string
yaml_doc = """
openapi: 3.1.0
info:
title: My API
version: 1.0.0
paths: {}
"""
doc = parser.parse(yaml_doc)
```
### Validating OpenAPI Documents
```python
from jentic.apitools.openapi.validator.core import OpenAPIValidator
# Create validator
validator = OpenAPIValidator()
# Validate from file
result = validator.validate("file:///path/to/openapi.yaml")
if result.valid:
print("Document is valid!")
else:
for diagnostic in result.diagnostics:
print(f"Error: {diagnostic.message}")
```
### Transforming OpenAPI Documents
```bash
# Install with Redocly backend support
pip install jentic-openapi-transformer[redocly]
```
```python
from jentic.apitools.openapi.transformer.bundler.core import OpenAPIBundler
# Bundle OpenAPI document with external reference resolution
bundler = OpenAPIBundler("redocly")
result = bundler.bundle("file:///path/to/openapi.yaml", return_type=dict)
print(result["info"]["title"])
```
## Packages
This monorepo contains the following packages:
| Package | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| **[jentic-openapi-tools](https://github.com/jentic/jentic-openapi-tools/tree/HEAD)** | Meta-package that installs all workspace packages |
| **[jentic-openapi-common](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-common)** | Common utilities and shared functionality |
| **[jentic-openapi-datamodels](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-datamodels)** | OpenAPI data models and structures |
| **[jentic-openapi-parser](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-parser)** | OpenAPI document parsing with pluggable backends |
| **[jentic-openapi-traverse](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-traverse)** | OpenAPI document traversal utilities |
| **[jentic-openapi-transformer](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-transformer)** | OpenAPI document transformation and bundling |
| **[jentic-openapi-transformer-redocly](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-transformer-redocly)** | Redocly-based transformation backend |
| **[jentic-openapi-validator](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-validator)** | OpenAPI document validation with pluggable backends |
| **[jentic-openapi-validator-redocly](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-validator-redocly)** | Redocly-based validation backend |
| **[jentic-openapi-validator-spectral](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-validator-spectral)** | Spectral-based validation backend |
| **[jentic-openapi-validator-speclynx](https://github.com/jentic/jentic-openapi-tools/tree/HEAD/packages/jentic-openapi-validator-speclynx)** | SpecLynx ApiDOM-based validation backend |
Each package has its own detailed README with comprehensive API documentation and examples.
## Documentation
- **[Development Guide](https://github.com/jentic/jentic-openapi-tools/blob/HEAD/DEVELOPMENT.md)** - Setup instructions,
testing, and development workflows
- **[Contributing Guidelines](https://github.com/jentic/jentic-openapi-tools/blob/HEAD/CONTRIBUTING.md)** - How to
contribute to the project
- **Package READMEs** - See individual package directories for detailed API documentation
## Architecture
The Jentic OpenAPI Tools follow a modular architecture with a plugin-based backend system:
- **Core Packages** - Provide base functionality and abstractions
- **Backend Packages** - Implement specific parsing, validation, or transformation strategies
- **Entry Points** - Backends register themselves via Python entry points for automatic discovery
This design allows you to:
- Start with default backends and add advanced ones as needed
- Implement custom backends for specific requirements
- Use multiple backends simultaneously for comprehensive validation
---
Built and maintained by [Jentic](https://jentic.com)