Skip to main content

OpenAPI Client for Python

A Python implementation inspired by openapi-client-axios that provides a dynamic client for OpenAPI specifications. This implementation uses httpx for HTTP requests and Python's metaprogramming capabilities to dynamically generate a client.

Installation

pip install -e .

Usage

from openapiclient import OpenAPIClient
import asyncio

async def main():
    # Initialize the client with the OpenAPI definition
    api = OpenAPIClient(definition="https://petstore3.swagger.io/api/v3/openapi.json")

    try:
        # Initialize and get the dynamic client
        client = await api.init()

        # Call an operation using the generated method
        response = await client.getPetById(petId=1)

        # Print the response
        print(f"Status code: {response['status']}")
        print(f"Pet data: {response['data']}")
    finally:
        # Close the HTTP session
        await api.close()

if __name__ == "__main__":
    asyncio.run(main())

Features

  • Dynamic client generation using Python metaprogramming
  • Supports OpenAPI 3.0 and 3.1
  • Supports JSON and YAML specification formats
  • Supports specification loading from URL, file, or dictionary
  • Asynchronous API using httpx
  • Response format similar to axios (data, status, headers, config)

Author

lloydzhou (2025-02-27)

Metadata

Release files for httpx-openapi-gen 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for httpx-openapi-gen 0.1.0
File Interpreter ABI Platform
httpx_openapi_gen-0.1.0-py3-none-any.whl Python 3 none any Details

Release files / httpx_openapi_gen-0.1.0-py3-none-any.whl

Download URL httpx_openapi_gen-0.1.0-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b60ca232fc7295b45c53ec6c485cc417ef5b9fda8939c7616643cb42ffa4ea67
BLAKE2b-256 checksum
How to use checksums
5882c3db2d3ff72619c788ad5f84b7eb0456b82e7ce8a7d9b37cd72854da8176
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page