aiopenapi3
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.:
multilingual
Swagger 2.0
OpenAPI 3.0
OpenAPI 3.1
multi file description documents
recursive schemas
additionalProperties mixed with properties
plugin interface to mangle description documents and messages
mutualTLS authentication
some aspects of the specifications are implemented loose
-
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
-
dependentRequired
dependentSchemas
If-Then-Else
Implication
non-unique parameter names in an operations headers/path/query