|
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. |
| 25 | + |
| 26 | +Currently, the following languages/frameworks are supported: |
21 | 27 |
|
22 | 28 | - python
|
23 | 29 |
|
24 |
| -## Can I build here? |
| 30 | +## Reasons To Use the Python Generator |
| 31 | + |
| 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) |
| 33 | +- [Tests are passing in CI](https://app.circleci.com/pipelines/github/openapi-json-schema-tools/openapi-json-schema-generator?branch=master) |
| 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) |
| 35 | +- Run time type checking and validation checking when: |
| 36 | + - instantiating models |
| 37 | + - sending to endpoints |
| 38 | + - receiving from endpoints |
| 39 | +- Type hints for all model inputs |
| 40 | +- Type hints for accessing properties in object instances so some_val in some_val = some_inst['someKey'] will have the correct type hint |
| 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 |
| 42 | +- Endpoints have input and response type hints |
| 43 | +- Openapi spec inline schemas supported at 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 |
| 46 | +- String transmission of numbers supported with type: string, format: number, value can be accessed as a Decimal with inst.as_decimal_oapg |
| 47 | +- Format support for: int32, int64, float, double, binary, date, datetime |
| 48 | +- Multiple content types supported for request and response bodies |
| 49 | +- Endpoint response always also includes the urllib3.HTTPResponse |
| 50 | +- Endpoint response deserialization can be skipped with the skip_deserialization argument |
| 51 | +- Invalid (in python) property names supported like self, from etc |
| 52 | + |
| 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) |
| 59 | + |
| 60 | +### Can I build here? |
25 | 61 |
|
26 | 62 | Yes! Contributions are welcome.
|
27 | 63 | If you want to build a new server or client or documentation generator you are welcome to here.
|
|
0 commit comments