Skip to main content

Loveable API Clients from OpenAPI schemas

Project description

⚜️ Clientele

Loveable API Clients from OpenAPI schemas

Package version Supported Python versions

Clientele lets you generate fully-typed, loveable Python API Clients from OpenAPI schemas:

from my_api import client, schemas

# Pydantic-typed inputs
data = schemas.RequestDataRequest(my_input="test")

# Easy to read client functions
response = client.request_data_request_data_post(data=data)

# Handle responses elegantly
match response:
    case schemas.RequestDataResponse():
        # Handle valid response
        ...
    case schemas.ValidationError():
        # Handle validation error
        ...

The generated code is tiny - the example schema we use for documentation and testing only requires 250 lines of code and 5 files.

Choose either sync or async - we support both, and you can switch between them easily:

from my_async_api import client

# Async client functions
response = await client.simple_request_simple_request_get()

All generated from a single command:

# add -asyncio -t to make it async
clientele generate -u https://raw.githubusercontent.com/phalt/clientele/main/example_openapi_specs/best.json -o api_client/

(That works - try it now!)

Other features

  • Supports authentication automatically (curently only HTTP Bearer and HTTP Basic auth).
  • Written entirely in Python - no need to install any other languages.
  • The client footprint only requires httpx and pydantic.
  • Support your own configuration - we provide an entry point that will never be overwritten.
  • Designed for easy testing with respx.

We're built on:

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

clientele-0.5.2.tar.gz (13.4 kB view hashes)

Uploaded Source

Built Distribution

clientele-0.5.2-py3-none-any.whl (18.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page