Skip to main content

oapi

test PyPI version

oapi is a library for authoring python client libraries for web APIs based on an OpenAPI specification (both OpenAPI/Swagger version 2 and version 3 are supported).

oapi-generated packages/modules differ from those generated by other tools (including but not limited to swagger-codegen) in that oapi generates a data model which enforces the schemas defined in the OpenAPI specification. This means that request and response objects, and their properties/items/members, cannot comprise data types which differ from those specified in their OpenAPI document. Additionally, request and response objects can be validated using sob.validate to verify that they were not parsed from an object having attributes not defined in the element's JSON schema, and have all required attributes. oapi fully supports polymorphism when a schema has an "anyOf", "allOf", or "oneOf" attribute (although oapi does not require a discriminator to be defined).

Notable features of an oapi generated client/model library include:

  • oapi generated data models and clients are fully type-annotated
  • oapi generated data models and clients adhere to PEP-8 formatting
  • oapi generated data models and clients include docstrings for all models, model properties, client methods, and client method parameters, inferred from "description" and "summary" attributes of elements within the specification
  • oapi generated clients will handle the most common server-to-server authentication methods out-of-box, including the OAuth2 authorization code flow (client_id/client_secret), API keys, bearer tokens, HTTP basic auth, and most cookie-based authentication patterns. Custom authentication methods are also easily accomplished by specifying custom base classes and/or passing initialization decorators to oapi.write_client_module.
  • oapi generated clients and models are easily updated. For instance: oapi generated data model classes can be renamed using your favorite IDE's refactoring tools, and subsequent updates to that data model (such as to reflect minor-version updates to the spec which add endpoints, schemas, parameters, etc.) will retain your new class names, so long as the schema from which the class was generated remains in the same location within the spec. Class naming can also be customized by passing a custom hook to the get_class_name_from_pointer parameter for oapi.write_model_module.

Release files for oapi 2.8.7

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

Source distribution (sdist)

Source distribution for oapi 2.8.7
File Size Uploaded
oapi-2.8.7.tar.gz 67.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oapi 2.8.7
File Interpreter ABI Platform
oapi-2.8.7-py3-none-any.whl Python 3 none any Details

Total release size: 139.2 kB

Release files / oapi-2.8.7.tar.gz

Download URL oapi-2.8.7.tar.gz
Size 67.5 kB
Tags Source
SHA-256 checksum
How to use checksums
38774ef85df27b782d734b7c294549a551f1b82461db71d7a5c4efe25c10f38b
BLAKE2b-256 checksum
How to use checksums
830ebbca9d8642536d95b7b2b86db98713c05829a3d26e5bde4da53e38cfd4c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.12.3 HTTPX/0.28.1

Release files / oapi-2.8.7-py3-none-any.whl

Download URL oapi-2.8.7-py3-none-any.whl
Size 71.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c31a7f4d42a5dadc8b9e8a2a30c1c8b498b84f0fd7aa4b4ff129dbffb3f2cf05
BLAKE2b-256 checksum
How to use checksums
1b57b4f709d67d6575551a9a4709c9ff19b984623179022de18de6cdf5311638
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.12.3 HTTPX/0.28.1

Release history Release notifications | RSS feed

This release

2.8.7 This release

2 release files

2.8.6

2 release files

2.8.5

2 release files

2.8.3

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.6

2 release files

2.4.5

2 release files

2.4.4

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.62.8

2 release files

1.62.7

2 release files

1.62.6

2 release files

1.62.5

2 release files

1.62.4

2 release files

1.62.3

2 release files

1.62.2

2 release files

1.61.4

2 release files

1.61.3

2 release files

1.61.2

2 release files

1.61.0

2 release files

1.59.5

2 release files

1.59.4

2 release files

1.59.3

2 release files

1.58.0

2 release files

1.57.0

2 release files

1.56.0

2 release files

1.55.0

2 release files

1.54.0

2 release files

1.53.0

2 release files

1.52.0

2 release files

1.51.0

2 release files

1.50.0

2 release files

1.49.0

2 release files

1.41.0

2 release files

1.40.0

2 release files

1.39.0

2 release files

1.38.0

2 release files

1.36.0

2 release files

1.35.0

2 release files

1.34.0

2 release files

1.33.0

2 release files

1.32.0

2 release files

1.31.0

2 release files

1.30.0

2 release files

1.27.0

2 release files

1.26.0

2 release files

1.25.0

2 release files

1.24.0

2 release files

1.23.0

2 release files

1.22.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.0

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.79

2 release files

0.0.69

2 release files

0.0.68

2 release files

0.0.67

2 release files

0.0.62

2 release files

0.0.61

2 release files

0.0.59

2 release files

0.0.58

2 release files

0.0.57

2 release files

0.0.56

2 release files

0.0.55

2 release files

0.0.54

2 release files

0.0.53

2 release files

0.0.52

2 release files

0.0.51

2 release files

0.0.50

2 release files

0.0.49

2 release files

0.0.48

2 release files

0.0.47

2 release files

0.0.42

2 release files

0.0.41

2 release files

0.0.40

2 release files

0.0.39

2 release files

0.0.38

2 release files

0.0.37

2 release files

0.0.36

2 release files

0.0.35

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.13

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.1

2 release files

0.0.0

2 release files

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