{"id":13783872,"url":"https://github.com/openapi-json-schema-tools/openapi-json-schema-generator","last_synced_at":"2025-04-09T16:19:37.708Z","repository":{"id":60742565,"uuid":"544314254","full_name":"openapi-json-schema-tools/openapi-json-schema-generator","owner":"openapi-json-schema-tools","description":" OpenAPI JSON Schema Generator allows auto-generation of API client libraries with a focus on JSON schema given an OpenAPI document","archived":true,"fork":false,"pushed_at":"2024-06-15T18:20:04.000Z","size":126269,"stargazers_count":165,"open_issues_count":1,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-09T16:19:25.500Z","etag":null,"topics":["code-generation","draft2020-12","draft5","hacktoberfest","hacktoberfest2022","help-wanted","java","json-schema","jsonschema","kotlin","openapi","openapi-generator","openapi-specification","openapi3","openapi31","python","python3","rest","schema-validation"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openapi-json-schema-tools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.adoc","authors":null,"dei":null},"funding":{"github":["spacether"]}},"created_at":"2022-10-02T06:47:59.000Z","updated_at":"2025-03-12T03:52:04.000Z","dependencies_parsed_at":"2024-04-15T06:31:15.045Z","dependency_job_id":null,"html_url":"https://github.com/openapi-json-schema-tools/openapi-json-schema-generator","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi-json-schema-tools%2Fopenapi-json-schema-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi-json-schema-tools%2Fopenapi-json-schema-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi-json-schema-tools%2Fopenapi-json-schema-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi-json-schema-tools%2Fopenapi-json-schema-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openapi-json-schema-tools","download_url":"https://codeload.github.com/openapi-json-schema-tools/openapi-json-schema-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065281,"owners_count":21041872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-generation","draft2020-12","draft5","hacktoberfest","hacktoberfest2022","help-wanted","java","json-schema","jsonschema","kotlin","openapi","openapi-generator","openapi-specification","openapi3","openapi31","python","python3","rest","schema-validation"],"created_at":"2024-08-03T19:00:32.291Z","updated_at":"2025-04-09T16:19:37.682Z","avatar_url":"https://github.com/openapi-json-schema-tools.png","language":"Java","readme":"# OpenAPI JSON Schema Generator\n\n[![CI Tests](https://dl.circleci.com/status-badge/img/gh/openapi-json-schema-tools/openapi-json-schema-generator/tree/master.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/openapi-json-schema-tools/openapi-json-schema-generator/tree/master)\n[![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-orange)](./LICENSE)\n\nAuto generate a client sdk from your openapi 3.0.0-3.1.0 document using Openapi JSON Schema Generator. \nThis project is a code generator that focuses on supporting all openapi and json schema features.\n\n## Overview\nOpenAPI JSON Schema Generator allows auto-generation of API client libraries (SDK generation) given an\n[OpenAPI document](https://github.com/OAI/OpenAPI-Specification) (3.0.0-[3.1.0*](#openapi-v310-support) are supported).\nThis project focuses on making the output 100% compliant with openapi + JSON schema specs.\nThe goal is to fully support everything defined in openapi + the included JSON schema specs\nso developers can use all of those features.\n\nCurrently, the following languages/frameworks are supported:\n\n| Feature                                                                                                              | [Python](docs/generators/python.md) | [Java](docs/generators/java.md) | [Kotlin](docs/generators/kotlin.md) |\n|----------------------------------------------------------------------------------------------------------------------|-------------------------------------|---------------------------------|-------------------------------------|\n| Generator status                                                                                                     | stable                              | stable                          | stable                                   |\n| Openapi v3.0.0-3.1.0 ingestion                                                                                       | X                                   | X                               | X                                   |\n| Json Schema 2020-12 Support (components/schemas)                                                                     | X                                   | X                               | X                                   |\n| Component schema classes + documentation produced                                                                    | X                                   | X                               | X                                   |\n| Documentation produced for other component types:\u003cbr\u003eheaders, parameters, requestBodies, ressponses, securitySchemes | X                                   | X                               |                                     |\n| Methods generated for endpoints \u003cbr\u003ethat send/receive json + docs generated for them                                 | X                                   | X                               |                                     |\n\n## Reasons To Use the Generators\n- Openapi spec support for v3.0.0-3.1.0\n  - thorough tests run in CI using json schema test suite, see 3_0_0 and 3_1_0 sample clients\n- Static analysis:\n  - Python: mypy run in CI against python petstore sample\n  - Java: checker framework run w/ NullnessChecker, ensures no null pointer exceptions\n- Format support for: int32, int64, float, double, binary, date, datetime, uuid\n- Invalid (in language) property names supported like `from`, `1var`, `hi-there` etc in\n  - schema property names\n  - endpoint parameter names\n- Openapi document inline schemas supported at any depth in any location\n- Generated Code: Class + method inputs are typed\n- Generated Code: Static type checking done in static languages using builder inputs and class property access\n- Generated Code: run-time type checking done in all generators (a payload can be validated against n schemas)\n- Generated Code re-use built in from the ground up\n  - components/schemas/headers etc are generated as separate classes and imported when used via $ref\n- Payload values are not coerced when validated, so a date/date-time value can pass other validations that describe the payload only as type string\n- String transmission of numbers supported with type: string, format: number, value can be accessed as a Decimal with schemas.as_decimal(inst)\n- Multiple content types supported for request and response bodies\n- Endpoint response always also includes the raw response\n- Interfaces kept consistent across generated languages\n\n## Join Our Community\nWe use a Discord server as a place to ask questions and help each other. It offers functionality very similar to Slack.\nYou can join us here: https://discord.gg/mHB8WEQuYQ\n\n### Can I build here?\n\nYes; contributions are welcome!\nSubmit a PR if you want to add a new server scaffold, client sdk, or documentation generator in any language.\n\n## Table of contents\n\n  - [OpenAPI JSON Schema Generator](#openapi-json-schema-generator)\n  - [Overview](#overview)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n    - [Compatibility](#compatibility)\n    - [Build Projects](#build-projects)\n    - [Docker](#docker)\n  - [Getting Started](#getting-started)\n  - [Usage](#usage)\n    - [Customization](#customization)\n    - [Workflow Integration](#workflow-integration)\n    - [License Information](#license-information)\n  - [Companies/Projects using OpenAPI JSON Schema Generator](#companiesprojects-using-openapi-json-schema-generator)\n  - [About Us](#about-us)\n    - [History of OpenAPI JSON Schema Generator](#history-of-openapi-json-schema-generator)\n  - [License](#license)\n\n## Installation\n\n### Compatibility\n\nThe OpenAPI Specification has undergone 3 revisions since initial creation in 2010.  The openapi-json-schema-generator project has the following compatibilities with the OpenAPI Specification:\n\n| OpenAPI JSON Schema Generator Version | OpenAPI Spec compatibility                   |\n|---------------------------------------|----------------------------------------------|\n| 3.3.0+                                | 3.0.0 - [3.1.0*](#openapi-v310-support) |\n| 3.1.0 - 3.2.1                         | 3.0.0 - [3.1.0](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/blob/3.1.0/docs/generators/python.md#schema-feature) |\n| 1.0.0 - 3.0.0                         | 3.0.0 - 3.0.3                                |\n\n#### OpenAPI v3.1.0 support\nOpenAPI v3.1.0 specification support includes these new/updated 2020-12 json schema keywords:\n1. const: only string values are working because of bugs in swagger parser\n2. contains\n3. dependentRequired\n4. dependentSchemas\n5. else\n6. if\n7. maxContains\n8. minContains\n9. patternProperties\n10. prefixItems\n11. propertyNames\n12. then\n13. type (array of types supported in addition to one non-array value)\n14. unevaluatedItems\n15. unevaluatedProperties\n\nNote: these features can also be seen in the generator documentation [schema features](docs/generators/python.md#schema-feature)\n\n### Build Projects\n\nTo build from source, you need the following installed and available in your `$PATH:`\n\n* [Java 11](https://www.oracle.com/technetwork/java/index.html)\n\n* [Apache Maven 3.9.3 or greater](https://maven.apache.org/)\n\nAfter cloning the project, you can build it from source with this command:\n```sh\nmvn clean install\n```\n\nThe default build contains minimal static analysis (via CheckStyle). To run your build with PMD and Spotbugs, use the `static-analysis` profile:\n\n```sh\nmvn -Pstatic-analysis clean install\n```\n\n### Docker\n\n#### Public Pre-built Docker images\n\n - [https://hub.docker.com/r/openapijsonschematools/openapi-json-schema-generator-cli/](https://hub.docker.com/r/openapijsonschematools/openapi-json-schema-generator-cli/) (official CLI)\n\n#### OpenAPI JSON Schema Generator CLI Docker Image\n\nThe docker image acts as a standalone executable. It can be used as an alternative to installing via homebrew, or for developers who are unable to install Java or upgrade the installed version.\n\nTo generate code with this image, you'll need to mount a local location as a volume.\n\nExample:\n\n```sh\ndocker run --rm -v \"${PWD}:/local\" openapijsonschematools/openapi-json-schema-generator-cli generate \\\n    -i https://raw.githubusercontent.com/openapi-json-schema-tools/openapi-json-schema-generator/master/src/test/resources/3_0/petstore.yaml \\\n    -g python \\\n    -o /local/out/python\n```\n\nThe generated code will be located under `./out/python` in the current directory.\n\n#### Development in docker\n\nYou can use `bin/run-in-docker.sh` to do all development. This script maps your local repository to `/gen`\nin the docker container. It also maps `~/.m2/repository` to the appropriate container location.\n\nTo execute `mvn package`:\n\n```sh\ngit clone https://github.com/openapi-json-schema-tools/openapi-json-schema-generator\ncd openapi-json-schema-generator\n./bin/run-in-docker.sh mvn package\n```\n\nBuild artifacts are now accessible in your working directory.\n\nOnce built, `run-in-docker.sh` will act as an executable for openapi-json-schema-generator-cli. To generate code, you'll need to output to a directory under `/gen` (e.g. `/gen/out`). For example:\n\n```sh\n./bin/run-in-docker.sh help # Executes 'help' command for openapi-json-schema-generator-cli\n./bin/run-in-docker.sh list # Executes 'list' command for openapi-json-schema-generator-cli\n./bin/run-in-docker.sh /gen/bin/python-petstore.sh  # Builds the Python client\n./bin/run-in-docker.sh generate -i src/test/resources/3_0/petstore.yaml \\\n    -g go -o /gen/out/python-petstore -p packageName=petstore_api # generates python client, outputs locally to ./out/python-petstore\n```\n\n##### Troubleshooting\n\nIf an error like this occurs, just execute the **mvn clean install -U** command:\n\n\u003e org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project openapi-json-schema-generator: A type incompatibility occurred while executing org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test: java.lang.ExceptionInInitializerError cannot be cast to java.io.IOException\n\n```sh\n./run-in-docker.sh mvn clean install -U\n```\n\n\u003e Failed to execute goal org.fortasoft:gradle-maven-plugin:1.0.8:invoke (default) on project openapi-json-schema-generator-gradle-plugin-mvn-wrapper: org.gradle.tooling.BuildException: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.7-bin.zip'\n\nRight now: no solution for this one :|\n\n\u003c!-- /RELEASE_VERSION --\u003e\n## Getting Started\n\nTo generate a python client for [petstore.yaml](https://raw.githubusercontent.com/openapi-json-schema-tools/openapi-json-schema-generator/master/src/test/resources/3_0/petstore.yaml), please run the following\n```sh\ngit clone https://github.com/openapi-json-schema-tools/openapi-json-schema-generator\ncd openapi-json-schema-generator\nmvn clean package\njava -jar target/openapi-json-schema-generator-cli.jar generate \\\n   -i https://raw.githubusercontent.com/openapi-json-schema-tools/openapi-json-schema-generator/master/src/test/resources/3_0/petstore.yaml \\\n   -g python \\\n   -o /var/tmp/python_api_client\n```\n(if you're on Windows, replace the last command with `java -jar target\\openapi-json-schema-generator-cli.jar generate -i https://raw.githubusercontent.com/openapi-json-schema-tools/openapi-json-schema-generator/master/src/test/resources/3_0/petstore.yaml -g python -o c:\\temp\\python_api_client`)\n\nTo get a list of **general** options available, please run `java -jar target/openapi-json-schema-generator-cli.jar help generate`\n\nTo get a list of python specified options (which can be passed to the generator with a config file via the `-c` option), please run `java -jar target/openapi-json-schema-generator-cli.jar config-help -g python`\n\n## Usage\n\n### To generate a sample client library\nYou can build a client against the [Petstore API](https://raw.githubusercontent.com/openapijsonschematools/openapi-json-schema-generator/master/src/test/resources/3_0/petstore.yaml) as follows:\n\n```sh\n./bin/generate-samples.sh ./bin/generate_samples_configs/python.yaml\n```\n\n(On Windows, please install [GIT Bash for Windows](https://gitforwindows.org/) to run the command above)\n\nThis script will run the generator with this command:\n\n```sh\njava -jar target/openapi-json-schema-generator-cli.jar generate \\\n  -i https://raw.githubusercontent.com/openapijsonschematools/openapi-json-schema-generator/master/src/test/resources/3_0/petstore.yaml \\\n  -g python \\\n  -t src/main/resources/python \\\n  --additional-properties packageName=petstore_api \\\n  -o samples/client/petstore/python\n```\n\nwith a number of options. [The python options are documented here.](docs/generators/python.md)\n\nYou can also get the options with the `help generate` command (below only shows partial results):\n\n```\nNAME\n        openapi-json-schema-generator-cli generate - Generate code with the specified\n        generator.\n\nSYNOPSIS\n        openapi-json-schema-generator-cli generate\n                [(-a \u003cauthorization\u003e | --auth \u003cauthorization\u003e)]\n                [--api-name-suffix \u003capi name suffix\u003e] [--api-package \u003capi package\u003e]\n                [--artifact-id \u003cartifact id\u003e] [--artifact-version \u003cartifact version\u003e]\n                [(-c \u003cconfiguration file\u003e | --config \u003cconfiguration file\u003e)] [--dry-run]\n                [(-e \u003ctemplating engine\u003e | --engine \u003ctemplating engine\u003e)]\n                [--enable-post-process-file]\n                [(-g \u003cgenerator name\u003e | --generator-name \u003cgenerator name\u003e)]\n                [--git-host \u003cgit host\u003e] [--git-repo-id \u003cgit repo id\u003e]\n                [--git-user-id \u003cgit user id\u003e] [--global-property \u003cglobal properties\u003e...]\n                [--group-id \u003cgroup id\u003e] [--hide-generation-timestamp]\n                [--http-user-agent \u003chttp user agent\u003e]\n                [(-i \u003cspec file\u003e | --input-spec \u003cspec file\u003e)]\n                [--ignore-file-override \u003cignore file override location\u003e]\n                [--ints-allowed-for-float-double-formats]\n                [--invoker-package \u003cinvoker package\u003e] [--minimal-update]\n                [--model-name-prefix \u003cmodel name prefix\u003e]\n                [--model-name-suffix \u003cmodel name suffix\u003e]\n                [(-o \u003coutput directory\u003e | --output \u003coutput directory\u003e)] [(-p \u003cadditional properties\u003e | --additional-properties \u003cadditional properties\u003e)...]\n                [--package-name \u003cpackage name\u003e] [--release-note \u003crelease note\u003e]\n                [--remove-enum-value-prefix] [--remove-operation-id-prefix]\n                [(-s | --skip-overwrite)] [--skip-operation-example]\n                [--skip-validate-spec] [--strict-spec \u003ctrue/false strict behavior\u003e]\n                [(-t \u003ctemplate directory\u003e | --template-dir \u003ctemplate directory\u003e)]\n                [(-v | --verbose)]\n```\n\u003cdetails\u003e\n\u003csummary\u003egenerate OPTIONS\u003c/summary\u003e\n\n```text\nOPTIONS\n        -a \u003cauthorization\u003e, --auth \u003cauthorization\u003e\n            adds authorization headers when fetching the OpenAPI definitions\n            remotely. Pass in a URL-encoded string of name:header with a comma\n            separating multiple values\n\n        --api-name-suffix \u003capi name suffix\u003e\n            Suffix that will be appended to all API names ('tags'). Default:\n            Api. e.g. Pet =\u003e PetApi. Note: Only ruby, python, jaxrs generators\n            support this feature at the moment.\n\n        --api-package \u003capi package\u003e\n            package for generated api classes\n\n        --artifact-id \u003cartifact id\u003e\n            artifactId in generated pom.xml. This also becomes part of the\n            generated library's filename\n\n        --artifact-version \u003cartifact version\u003e\n            artifact version in generated pom.xml. This also becomes part of the\n            generated library's filename\n\n        -c \u003cconfiguration file\u003e, --config \u003cconfiguration file\u003e\n            Path to configuration file. It can be JSON or YAML. If file is JSON,\n            the content should have the format {\"optionKey\":\"optionValue\",\n            \"optionKey1\":\"optionValue1\"...}. If file is YAML, the content should\n            have the format optionKey: optionValue. Supported options can be\n            different for each language. Run config-help -g {generator name}\n            command for language-specific config options.\n\n        --dry-run\n            Try things out and report on potential changes (without actually\n            making changes).\n\n        -e \u003ctemplating engine\u003e, --engine \u003ctemplating engine\u003e\n            templating engine: \"handlebars\"(default) or \"mustache\"\n\n        --enable-post-process-file\n            Enable post-processing file using environment variables.\n\n        -g \u003cgenerator name\u003e, --generator-name \u003cgenerator name\u003e\n            generator to use (see list command for list)\n\n        --git-host \u003cgit host\u003e\n            Git host, e.g. gitlab.com.\n\n        --git-repo-id \u003cgit repo id\u003e\n            Git repo ID, e.g. openapi-generator.\n\n        --git-user-id \u003cgit user id\u003e\n            Git user ID, e.g. openapijsonschematools.\n\n        --global-property \u003cglobal properties\u003e\n            sets specified global properties (previously called 'system\n            properties') in the format of name=value,name=value (or multiple\n            options, each with name=value)\n\n        --group-id \u003cgroup id\u003e\n            groupId in generated pom.xml\n\n        --hide-generation-timestamp\n            Hides the generation timestamp when files are generated.\n\n        --http-user-agent \u003chttp user agent\u003e\n            HTTP user agent, e.g. codegen_csharp_api_client, default to\n            'OpenAPI-Generator/{packageVersion}/{language}'\n\n        -i \u003cspec file\u003e, --input-spec \u003cspec file\u003e\n            location of the OpenAPI spec, as URL or file (required if not loaded\n            via config using -c)\n\n        --ignore-file-override \u003cignore file override location\u003e\n            Specifies an override location for the .openapi-generator-ignore\n            file. Most useful on initial generation.\n\n        --ints-allowed-for-float-double-formats\n            Integers are allowed in for type: number format:float/double\n            payloads\n\n        --invoker-package \u003cinvoker package\u003e\n            root package for generated code\n\n        --minimal-update\n            Only write output files that have changed.\n\n        --model-name-prefix \u003cmodel name prefix\u003e\n            Prefix that will be prepended to all model names.\n\n        --model-name-suffix \u003cmodel name suffix\u003e\n            Suffix that will be appended to all model names.\n\n        -o \u003coutput directory\u003e, --output \u003coutput directory\u003e\n            where to write the generated files (current dir by default)\n\n        -p \u003cadditional properties\u003e, --additional-properties \u003cadditional\n        properties\u003e\n            sets additional properties that can be referenced by the mustache\n            templates in the format of name=value,name=value. You can also have\n            multiple occurrences of this option.\n\n        --package-name \u003cpackage name\u003e\n            package for generated classes (where supported)\n\n        --release-note \u003crelease note\u003e\n            Release note, default to 'Minor update'.\n\n        --remove-enum-value-prefix\n            Remove the common prefix of enum values\n\n        --remove-operation-id-prefix\n            Remove prefix of operationId, e.g. config_getId =\u003e getId\n\n        -s, --skip-overwrite\n            specifies if the existing files should be overwritten during the\n            generation.\n\n        --skip-operation-example\n            Skip examples defined in operations to avoid out of memory errors.\n\n        --skip-validate-spec\n            Skips the default behavior of validating an input specification.\n\n        --strict-spec \u003ctrue/false strict behavior\u003e\n            'MUST' and 'SHALL' wording in OpenAPI spec is strictly adhered to.\n            e.g. when false, no fixes will be applied to documents which pass\n            validation but don't follow the spec.\n\n        -t \u003ctemplate directory\u003e, --template-dir \u003ctemplate directory\u003e\n            folder containing the template files\n\n        -v, --verbose\n            verbose mode\n```\n\n\u003c/details\u003e\n\nYou can then use the auto-generated client. The README.md is a good starting point.\n\nOther generators have [samples](samples) too.\n\n### Customization\n\nPlease refer to [customization.md](docs/customization.md) on how to customize the output (e.g. package name, version)\n\n### Workflow Integration\n\nPlease refer to [integration.md](docs/integration.md) on how to integrate OpenAPI generator with Maven, Gradle,  Github and CI/CD.\n\n### License Information\n\nThe OpenAPI JSON Schema Generator project is intended as a benefit for users of the Open API Specification.  The project itself has the [License](#license) as specified. In addition, please understand the following points:\n\n* The templates included with this project are subject to the [License](#license).\n* Generated code is intentionally _not_ subject to the parent project license\n\nWhen code is generated from this project, it shall be considered **AS IS** and owned by the user of the software.  There are no warranties--expressed or implied--for generated code.  You can do what you wish with it, and once generated, the code is your responsibility and subject to the licensing terms that you deem appropriate.\n\n## Companies/Projects using OpenAPI JSON Schema Generator\n\n[Github code search](https://github.com/search?q=DateSchema+DateTimeSchema+language%3APython+path%3A**%2Fschemas.py\u0026type=code)\n\n## About Us\n\nThis repo is based on v6.2.0 of OpenAPI Generator. This project focuses on making the output 100% compliant with JSON schema as part of the OpenAPI 3.1 specification with a focus on complex cases (top-down approach). The goal is to fully support everything defined in JSON schema so that developers can leverage JSON schema as well as OpenAPI specification in their API design. Building here allows for more rapid progress supporting new features in OpenAPI 3.X without having to support many older generators which don't use the new features.\n\n### History of OpenAPI JSON Schema Generator\n\nOpenAPI JSON Schema Generator is based on OpenAPI Generator v6.2.0.\nThe project was created here because the openapi-generator core team required the removal of the python generator \nfrom their project. The author of the python generator (@spacether) preferred to keep building \nin the openapi-generator repo, but core team refused to consider keeping python in openapi-generator.\nBelow is a timeline of those events and some of their reasons:\n\n#### Timeline of python generator development\n- Jan 4, 2021 - [openapi-generator v5.4.0: python-experimental created](https://github.com/OpenAPITools/openapi-generator/pull/8325). This generator is the beginning of the current python generator in this repo.\n- Sept 19, 2022 - meeting to discuss openapi 3.1.0 + python client, removal of python client mentioned as an option, not a requirement\n- Sept 22, 2022 - [openapi-generator v6.2.0: new python-experimental switched in as the primary python client](https://github.com/OpenAPITools/openapi-generator/pull/13501)\n- Sept 23, 2022 - communication clarified that removal of the python generator is required\n- Sept 24, 2022 - [openapi-generator v6.2.0: removal of python generator mentioned in v6.2.0 release](https://github.com/OpenAPITools/openapi-generator/releases/tag/v6.2.0)\n- Sept 26, 2022 - [different new repo made for openapi json schema generator in OpenapiTools org](https://github.com/OpenAPITools/openapi-json-schema-generator)\n- Oct 2, 2022 - [moved project to this repo](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator) I moved the generator to the new repo because full ownership privledges were not granted on the new repo to me, which had been promised, and because I was not given privledges that allowed docker distribution from the new repo\n- May 14, 2023 - [openapi-generator v7.0.0: python generator removed, a diffferent generator becomes the only python client](https://github.com/OpenAPITools/openapi-generator/pull/15486)\n\n\n#### Removal Reasons\n- Core team and @wing328 felt adoption of the python client was reduced from 5.0.0 and onward due to python-prior + python generators\n- Some python users in the community did not prefer the new python code\n- The fact that other users + companies are using it does not warrant keeping it in the repo\n- The fact that it is more fully passing json schema tests (including the feature keywords oneOf/anyOf/allOf/additionalProperties) does not warrant keeping it in the repo\n- The openapi-generator core team refused to consider the option of keeping the python generator as another generator option in their repo, and building another python generator that looks more conventional and making that generator primary\n\n## License\n\n-------\nCopyright 2023 OpenAPI-Json-Schema-Generator Contributors\nCopyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)\nCopyright 2018 SmartBear Software\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n---\n","funding_links":["https://github.com/sponsors/spacether"],"categories":["Who Uses the Test Suite","Java"],"sub_categories":["Python"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenapi-json-schema-tools%2Fopenapi-json-schema-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenapi-json-schema-tools%2Fopenapi-json-schema-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenapi-json-schema-tools%2Fopenapi-json-schema-generator/lists"}