|
17 | 17 | </div> |
18 | 18 |
|
19 | 19 | ## Overview |
20 | | -OpenAPI JSON Schema Generator allows auto-generation of API client libraries (SDK generation) with a focus on JSON Schema given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification) (3.0.0-3.0.3 are supported). Currently, the following languages/frameworks are supported: |
| 20 | +OpenAPI JSON Schema Generator allows auto-generation of API client libraries (SDK generation) given an |
| 21 | +[OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification) (3.0.0-3.0.3 are supported). |
| 22 | +This project focuses on making the output 100% compliant with openapi + JSON schema specs. |
| 23 | +The goal is to fully support everything defined in openapi + the included JSON schema specs |
| 24 | +so developers can use all of those features. |
21 | 25 |
|
22 | | -- python |
23 | | - |
24 | | -### Mission Statement |
| 26 | +Currently, the following languages/frameworks are supported: |
25 | 27 |
|
26 | | -This repo is based on v6.2.0 of OpenAPI Generator. |
27 | | -This project focuses on making the output 100% compliant with JSON schema as part of the |
28 | | -OpenAPI 3.1 specification with a focus on complex cases (top-down approach). The goal is |
29 | | -to fully support everything defined in JSON schema so that developers can leverage JSON |
30 | | -schema as well as OpenAPI specification in their API design. Building here allows for |
31 | | -more rapid progress supporting new features in OpenAPI 3.X without having to support |
32 | | -many older generators which don't use the new features. |
| 28 | +- python |
33 | 29 |
|
34 | | -### Reasons To Use the Python Generator |
| 30 | +## Reasons To Use the Python Generator |
35 | 31 |
|
36 | | -- [Thorough testing of json schema keyword features in models and endpoints](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/tree/master/samples/openapi3/client/3_0_3_unit_test/python/test) which come from the [json schema test suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite) |
| 32 | +- [Autogenerated thorough testing of json schema keyword features in models and endpoints](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/tree/master/samples/openapi3/client/3_0_3_unit_test/python/test) which come from the [json schema test suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite) |
37 | 33 | - [Tests are passing in CI](https://app.circleci.com/pipelines/github/openapi-json-schema-tools/openapi-json-schema-generator?branch=master) |
38 | 34 | - [Test endpoints are tagged by the relevant keyword like type/format/allOf 25+ keywords and counting](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/tree/master/samples/openapi3/client/3_0_3_unit_test/python/docs/apis/tags) |
39 | | -- Run time type checking and validation checking |
40 | | -- If needed, validation of some json schema keywords can be deactivated via a configuration class |
41 | | -- Openapi spec inline schemas supported of any depth |
| 35 | +- Run time type checking and validation checking when: |
| 36 | + - instantiating models |
| 37 | + - sending to endpoints |
| 38 | + - receiving from endpoints |
42 | 39 | - Type hints for all model inputs |
43 | | -- Payload values are not coerced when validated, so a datetime value can pass other validations that describe the payload only as type string |
44 | 40 | - Type hints for accessing properties in object instances so some_val in some_val = some_inst['someKey'] will have the correct type hint |
45 | 41 | - Type hints for accessing array items in array instances so some_val in some_val = array_inst[0] will have the correct type hint |
46 | 42 | - Endpoints have input and response type hints |
| 43 | +- Openapi spec inline schemas supported of any depth |
| 44 | +- If needed, validation of some json schema keywords can be deactivated via a configuration class |
| 45 | +- Payload values are not coerced when validated, so a datetime value can pass other validations that describe the payload only as type string |
47 | 46 | - String transmission of numbers supported with type: string, format: number, value can be accessed as a Decimal with inst.as_decimal_oapg |
48 | 47 | - Format support for: int32, int64, float, double, binary, date, datetime |
49 | 48 | - Multiple content types supported for request and response bodies |
50 | 49 | - Endpoint response always also includes the urllib3.HTTPResponse |
51 | 50 | - Endpoint response deserialization can be skipped with the skip_deserialization argument |
52 | 51 | - Invalid (in python) property names supported like self, from etc |
53 | 52 |
|
54 | | -And many more! The docs for that generator are [here](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/blob/master/docs/generators/python.md) |
| 53 | +And many more! |
| 54 | +- [Docs for the python generator](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/blob/master/docs/generators/python.md) |
| 55 | +- [Openapi json schema v3.0.3 unit test spec](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/blob/master/modules/openapi-json-schema-generator/src/test/resources/3_0/unit_test_spec/3_0_3_unit_test_spec.yaml) |
| 56 | + - [genrated client sample code](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/tree/master/samples/openapi3/client/3_0_3_unit_test/python) |
| 57 | +- [Openapi v3.0.3 general petstore spec, general features](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/blob/master/modules/openapi-json-schema-generator/src/test/resources/3_0/python/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml) |
| 58 | + - [genrated client sample code](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/tree/master/samples/openapi3/client/petstore/python) |
55 | 59 |
|
56 | 60 | ### Can I build here? |
57 | 61 |
|
|
0 commit comments