Skip to content

Latest commit

 

History

History
64 lines (45 loc) · 2.37 KB

index.rst

File metadata and controls

64 lines (45 loc) · 2.37 KB

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

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
  • additionalProperties
  • Discriminator/Polymorphism
  • plugin interface </plugin> to mangle description documents and messages
  • api:Parameter Encoding
  • advanced:Forms
  • advanced:mutualTLS authentication
  • Request <advanced:Request Streaming> and Response <advanced:Response Streaming> streaming to reduce memory usage
  • Culling extra:Large Description Documents

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