If you can’t make it perfect, make it adjustable.

aiopenapi3 is a client library to interface RESTful services using OpenAPI/Swagger description documents, built upon pydantic for data validation/coercion and httpx for transport. Located on github.

No code generation

Suits the code-first pattern for REST services used by major frameworks (FastAPI, Django REST framework) as well as design first APIs.

Features & Limitations

While aiopenapi3 supports some of the more exotic features of the Swagger/OpenAPI specification, e.g.:

some aspects of the specifications are implemented loose

  • Schema Composition

    • oneOf - validation does not care if more than one matches

    • anyOf - implemented as oneOf

    • allOf - merging Schemas is limited wrt. to merge conflicts

and other aspects of the specification are not implemented at all

  • Conditional Subschemas

    • dependentRequired

    • dependentSchemas

    • If-Then-Else

    • Implication

  • non-unique parameter names in an operations headers/path/query