Skip to main content

Workspace root for Jentic OpenAPI Tools

Project description

Jentic OpenAPI Tools

A comprehensive Python toolkit for parsing, validating, and transforming OpenAPI documents with pluggable backend architecture.

Discord Contributor Covenant License: Apache 2.0 PyPI version Python

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:

pip install jentic-openapi-tools

Or install individual packages as needed:

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

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

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

# Install with Redocly backend support
pip install jentic-openapi-transformer[redocly]
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 Meta-package that installs all workspace packages
jentic-openapi-common Common utilities and shared functionality
jentic-openapi-datamodels OpenAPI data models and structures
jentic-openapi-parser OpenAPI document parsing with pluggable backends
jentic-openapi-traverse OpenAPI document traversal utilities
jentic-openapi-transformer OpenAPI document transformation and bundling
jentic-openapi-transformer-redocly Redocly-based transformation backend
jentic-openapi-validator OpenAPI document validation with pluggable backends
jentic-openapi-validator-redocly Redocly-based validation backend
jentic-openapi-validator-spectral Spectral-based validation backend
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 - Setup instructions, testing, and development workflows
  • Contributing Guidelines - 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

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

jentic_openapi_tools-1.0.0a49.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

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

jentic_openapi_tools-1.0.0a49-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file jentic_openapi_tools-1.0.0a49.tar.gz.

File metadata

  • Download URL: jentic_openapi_tools-1.0.0a49.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jentic_openapi_tools-1.0.0a49.tar.gz
Algorithm Hash digest
SHA256 2f236888bfd8f406a92af9f287c6e0ff28ab3df7410f8c27b66b8d7ecafaea77
MD5 aacf70c7f7e72042dc2576c2237123dd
BLAKE2b-256 26401167aa14d6b9982426194fc0a681eed56dc2b481e6b8fbe56918141020c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for jentic_openapi_tools-1.0.0a49.tar.gz:

Publisher: release.yml on jentic/jentic-openapi-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jentic_openapi_tools-1.0.0a49-py3-none-any.whl.

File metadata

File hashes

Hashes for jentic_openapi_tools-1.0.0a49-py3-none-any.whl
Algorithm Hash digest
SHA256 27e48e085d3a77d6a6bbf90501c74f596adfb8d109b6543ac907e8a975613917
MD5 407f1422f377d8086656f4d2bc387dd6
BLAKE2b-256 45136d76dd76d3698748870636d39810d37bc3e425ebcc48aab9557b594cb087

See more details on using hashes here.

Provenance

The following attestation bundles were made for jentic_openapi_tools-1.0.0a49-py3-none-any.whl:

Publisher: release.yml on jentic/jentic-openapi-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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