* Improves docs generation
* Adds inline composed schemas
* Adds missing from property
* Adds notes info
* Fixes spacing
* Updates notes, generates container properties
* Adds anchors to property schema docs
* Adds format info to docs
* Adds items schema documentation
* Adds doc for additionalProperties
* Adds anchors for response types
* Fixes anchors in endpoint
* Fixes api doc link to model doc
* Removes returnType from api docs because it is unused
* Fixes float and double tests
* [typescript-angular] Update api template to use HttpClient#request instead of its http-method-specific wrappers
* update expected output for integration tests
* regenerate samples
* use .yaml instead of .yml
This is recommended by Symfony standards
* save Bundle files also to src path
* add test for generate ping
* add package imports
* fix expected file names
* why is Api/ApiServer.php missing
* output filenames
* use getAbsolutePath for debug purpose
* do not use punctuation as current directory
* refactor: remove todos
* use also .yaml in test to fix it
* add test for setting a different source directory
* use correct const for setting source dir property in tests
* import the AbstractPhpCodegen in test class
* put also Resources to source path
* save docs not to Resources
* update samples and improve src path in autoload.php and composer.json
* update moved samples
* Better control of when to write MetaOapg
* Makes MetaOapg in Schema a type hint rather than assignmnet
* Samples regenerated
* Adds tuple types
* Removes types info
* Adds _types
* Samples regenerated
* Adds missing mixins, samples regenerated
* SchemaTypeChecker removed
* Samples regnerated
* fix(typescript-fetch): Handle cors errors.
If there is a communication error,
e.g. an OPTIONS request returns 404 not found,
then the whole request is cancelled and there is no
response object (it is undefined).
I observed the following error:
TypeError: Cannot read properties of undefined (reading 'status')
Basically response was undefined.
In order to circumvent this issue, we do a check
to make sure response is "truthy", which works
for objects.
With these code changes, it will throw a ResponseError,
which is what you would expect instead of a TypeError.
* regenerate typescript-fetch stuff
* retry code generation
Co-authored-by: Joe Heyming <jheyming@Roblox.com>
* [python-experimental] Enhance octet-stream deserialization
When the headers didn't provide the filename, use the url of response to
extract filename.
* [python-experimental] Remove todo comment.
* [python-experimental] Fix test code.
* Update samples
* [python-experimental] Refined the method and the test
+ Early return when the url is empty or `None`.
+ Removed unused f-string prefix.
* [python-experimental] Comapre url is None explicitly.
* Update samples.
* Further Elixir Client Improvements
Resolves#12731 and is the completion of the work that I started with
#12751.
The changes here are extensive and likely resolve an issue that I have
seen with the Ory SDK (ory/sdk#194). I have also been unable to run the
integration suite for Elixir as I am (trying) to run everything in
Docker (`./run-in-docker.sh`) as I *do not* have a suitable Java
development environment set up, and do not do enough Java work to really
justify it.
- Updated the README for Elixir projects. Aside from some improved
readability of the template by use of link references instead of
inline links, I have also fixed the examples:
- The `deps` example should have been putting a version constraint
related to `appVersion`.
- The `config` example should have been using `packageName` instead of
`appName`. This particular issue repeats.
- In all Elixir files:
- Changed the function `@docs` formatting:
- changed the ehading level for `Parameters` and `Returns` to h3
(`###` instead of `##`). This will make somewhat better looking
documentation that does not over-emphasize these details (which
are *not* documented in a normal Elixir way, but this is somewhat
to be expected with a code generator.) It may be desirable, after
testing, to change this to `h4` instead of `h3`.
- Put parameter names and most return types in in-line code blocks
(`` `hello` ``).
- Put return types, when there are multiple types, in a Markdown
list.
- Fixed a lot of the spacing. Most files will be *closer* to Elixir
standard formatting than they were. Because of the limitations of
Mustache, it is still recommended that people who generate Elixir
clients run `mix format` at least once on their codebase.
- `api.mustache`:
- Removed an awkward function pipeline call. If we specified at least
Elixir 1.12 (something that I do not recommend as we have recently
jumped from requiring Elixir 1.6 to Elixir 1.10), there is a better
way to specify this now with `Kernel.then/2`. In the meantime,
assigning the constructed request structure to a variable and then
making a separate pipeline for the request execution and handling
makes for *much* easier to read generated code.
- Fixed the extra space issue with `evaluate_response` call tuple
values; `{{=<% %>=}}` changes the tag types, so this change is
intentional.
- In `config.exs.mustache`, `runtime.exs.mustache`, `mix.exs.mustache`,
and `connection.ex.mustache`, use `packageName` instead of `appName`
for configuration specification. If `packageName` and `appName`
differed, we would end up with cases like ory/sdk#194.
- `connection.ex.mustache` has been almost entirely rewritten. The
changes started in order to eliminate a `@doc` compile-time warning,
but shifted to remove the old way of building Tesla client structs
with `use Tesla`. It works, but is no longer the recommended way of
building Tesla clients.
- The *recommended* way of building a Tesla Client would now be
`Tesla.client(Connection.middleware(), Connection.adapter())`.
- Exposed both `Connection.adapter/0` and `Connection.middleware/1`
for use. `Connection.middleware/1` has special handling for the
cases where OAuth2 or HTTP Basic Auth are defined in the
application, but do not currently handle any other auth methods.
- `deserializer.ex.mustache` has mostly been reformatted. There are
things that I do not like about it (I do not like pipelines with one
line), and I have expanded one function capture into an anonymous
function for readability.
- `request_builder.ex.mustache` has been updated with better
function and parameter descriptions and names. Please note that if
`request |> method(:delete) |> method(:post)` is supposed to produce
a `POST` operation, we will need to change from `Map.put_new/3` to
`Map.put/3`.
- Reordered `evaluate_response/2` so that it is the function documented,
and made `decode/2` and `response_mapping/3` private functions. As
far as I can tell, I have *not* changed the functionality.
* Address issues found in code review
- The example dependency code in the README had dropped the opening
brace for the tuple. This has been resolved.
- The default formatting of the API pipelines has been adjusted to
minimize possible changes from `mix format`.
* Update modules/openapi-generator/src/main/resources/elixir/api.mustache
Co-authored-by: Michael Ramstein <633688+mrmstn@users.noreply.github.com>
* Update modules/openapi-generator/src/main/resources/elixir/connection.ex.mustache
Co-authored-by: Michael Ramstein <633688+mrmstn@users.noreply.github.com>
* Update modules/openapi-generator/src/main/resources/elixir/connection.ex.mustache
Co-authored-by: Michael Ramstein <633688+mrmstn@users.noreply.github.com>
* Update templates based on review comments
Co-authored-by: Michael Ramstein <633688+mrmstn@users.noreply.github.com>
* Adds NotAnyTypeSchema
* Unit test sample regenerated
* Turns parameter tests back on
* Removes unused from_server_types
* Reverts version files
* Samples regerated with fixed type hints
* Further fixed type hints
* Adds json detection for application/json-patch+json
* Adds jsonPatch route and schemas
* Adds test_json_patch
* Unit test sample updated
* Reverts version files
* Adds getters and setters for boolean schema true and false
* Updates CodegenModel
* Updates codegenProperty
* Updates codegenparameter and codegenresponse
* Adds comments describing the new properties
* Updates additionalProperty setting for python-experimental
* Sample regenerated
* Docs updated
* Do not write additionalProperties when they are unset
* Updates criteria for when DictSchema subcalsses are created
* Adds NotAnyTypeSchema when a schema is False
* Updates new kwargs signature
* Updates get_item type hints
* Updates sample, readme updated
* Simplifies method calls
* Adds get_item_oapg, removes unset from get_item and getattr
* Sample regenrated
* Fixes tests
* Raises AttributeError if a property is not required and it is dotname accessed
* Fixes one test
* Fixes 3 tests
* Fixes test
* Fixes two more tests
* Fixes test
* Fixes two tests
* Fixes two tests
* Tests fixed
* Unit test sample regerated, fixed unset addprops required type hint issue
* Migration guide updated
* Samples regenerated
In case the lifecycle phase is "generate-test-sources" the default output directory is:
"${project.build.directory}/generated-test-sources/openapi"
In case of any other lifecycle phase the default output directory is:
"${project.build.directory}/generated-sources/openapi"
Also use the "src/main/java" as the only default source folder in the output path for both
cases when addCompileSourceRoot == true and when addTestCompileSourceRoot == true.
In case you really need "src/test/java" it still can be set in the configOptions manually:
<configOptions>
<sourceFolder>src/test/java</sourceFolder>
</configOptions>
* Replaces all validate methods with public validate ones
* More methods made public with _oapg suffix
* Makes methods private where one can
* Fixes tests
* Fixes typo, maked Disciminable methods public
* Method changed to from_openapi_data_oapg
* Fixes tests for from_openapi_data_oapg
* Tweaks endpoint stub so the endpoint exists for ycharm type hints
* Makes Api methods protected
* Adds binary python type hints, makes get_new_instance_without_conversion_oapg public
* Protects some schema methods
* Protects more schema methods
* Renames as_x, is_x acessors with needed suffix
* Fixes some tests
* Fixes tests, fixes new signature for DateSchema
* Methods removed and made private
* Fixes indentation
* Samples regenerated
* Adds Unset type hint for use cases containing additional properties
* Simplifies no addProps type hint template
* Unset type hints added when additionalProperties are off
* Adds __getitem__ unset fix
* Adds unset test
* Fixes non overload method when addprops are present
* Sample regenrated, tests added, readme updated
* Unit test sample updated
* Reverts version files
* Uses frozendict module import in schemas and api_client
* Regnerates sample
* Adds overload type hints
* Adds __getitem__ methods for invalidly name properties
* Fixes code that instantiates referenced schemas in object payloads
* Fixes getitem literals containing control charaters
* Sorts params by required, adds type hints for properties with addProps turned off
* Unit test spec sample regenerated
* Adds stub files for models and endpoints
* Omitting some endpoint info from endpoint stub files
* Removes more from endpoint stub
* Deletes all except for schema definition in endpoint stubs
* Removes simple validations from stubs
* Removes endpoint parameter deifnition from endpoints stubs
* Removes unnecessary ../ stub variable access
* Samples regenerated
* Samples regenerated, fixed handling of invalidly named properties
* Samples regenerated
* Reverts version files
* Regenerates sample with additional enum values
* Sample regenerated, array type hints working
* Unit test sample regenerated
* Removes unneeded __getattribute__
* Sample regenerated using getRequiredVarsMap for property type hints
* Adds schemaFromAdditionalProperties to tell if a CodegenProperty is from properties or additionalProperties
* Adds get/setSchemaIsFromAdditionalProperties
* Updates codegenModel
* Updates codegenParameter
* Updates codegenResponse
* Uses setSchemaIsFromAdditionalProperties
* Fixes array new typ ehint and additional property type hints
* Samples regenerated
* Adds missing parms to javadoc
* Fixes param name
* Adds missing param to javadoc
* Combine javascript and javascript-apollo generator functionality
* Combine javascript and javascript-apollo templates
* update configs
* deprecate javascript-apollo generator
* bonus magic string deletion ✨
* update samples
* update generator docs
* fix: include .babelrc in apollo generation
* update samples
* update samples
* rename javascript-apollo to javascript-apollo-deprecated
* fix javascript apollo library template
Apollo library now uses the partial_model_generic template file from the ES6 library, as it includes many fixes and improvements (including handling models with ill-named attributes)
* update samples
* Create javascript-apollo-deprecated.md
* Updated javascript generator template's gitignore
Updates .gitignore with that from https://github.com/github/gitignore/blob/main/Node.gitignore
Main reason for the update is to ignore the 'dist' folder with compiled files by default.
* javascript generator: merge api_test template files
The only difference is that Apollo is not designed for browser, so having a "if(browser)" check is useless, but doesn't hurt.
* update docs
* cleanup
* avoid possible config clash
* update javascript-apollo sample
* update javascript-es6 sample
I kept the pom.xml from before
* update javascript-promise-es6 sample
kept pom.xml
* update samples
* Templates updated, dict properties moved into Meta
* Fixes tests
* Renames _discriminator to discriminator
* Moves required vars into required
* Renames _additional_properties to additional_properties
* Adds MetaOapgTyped
* Adds type hints for MetaOapg to classes that neen it
* Adds StrMixin
* Adds DecimalMixin
* Adds BoolMixin
* Adds NoneMixin
* Adds TupleMixin
* Adds FrozenDictMixin
* Regenerates unit test samples
* Only quotes type hints if they are imported
* Moves _items into Meta
* Renames _items to items, various small type hint fixes
* Adds type hints for object model new signature
* Adds type hints for body schema primitive types
* Adds primitive types to all query/path/header/cookie params
* Samples regenerated for unit test api
* Version files fixed
* Javascript Generator: small sanitization changes
Sanitize module name, do not sanitize description.
If we set the project name to "@myorg/mypackage" (scoped package[1]), running `npm test` will fail, as it will generate faulty code due to the module name including the '@' symbol, which is not a valid JS identifier.
Additionally, we don't need to sanitize the description - spaces and special characters are fine. We just need to make sure they are escaped, which we're already doing by invoking escapeText() on line 329
[1]anitize module name, do not sanitize description
* update JS samples
* fix TypescriptAngularPetstoreIntegrationTest
(since this has been abandoned for a long time: just copy the generated code the the "expected" directory)
* fix TypescriptAngularArrayAndObjectIntegrationTest
(since this has been abandoned for a long time: just copy the generated code the the "expected" directory)
* fix TypescriptAngularAdditionalPropertiesIntegrationTest
(since this has been abandoned for a long time: just copy the generated code the the "expected" directory)
* fixes#13131: add custom path parameter expansion to typescript-angular
* fixes#13131: add example for typescript-angular: paramExpansionStrategy=custom
* fixes#13131: document usage of paramExpansionStrategy=custom in README.mustache
* fixes#13131: fix unit tests and sample url for http-param-expander package
* fixes#13131: update samples
* fixes#13131: drop new cli parameter, handle encoding in template only
* fixes#13131: add TestNG groups to all Typescript tests
* fixes#13131: old angular/typescript does not understand type imports
* Apply suggestions from code review
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
* fixes#13131: implement backwards-compatible behavior for format: 'date-time'
* fixes#13131: update typescript-angular integrationtests
* fixes#13131: review fixes + lots of documentation
* fixes#13131: update integrationtests
* fixes#13131: update docs/examples
* fixes#13131: update integrationtests
* fixes#13131: unify enums to union-types to make the api feel mora angular-ish
* fixes#13131: update examples
* fixes#13131: update docs/examples after merge of master
Co-authored-by: Christoph Linder <post@christoph-linder.ch>
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
* Adds null checks to validation properties
* Modifies the templates to move validations into the cls
* Regnerates unit test spec
* Template update to get rid of cls factory for validations
* Updates samples for unit test spec
* Moves SchemaValidator class
* Removes SchemaValidator
* Fixes 2 tests in v3 sample
* Reverts version files
* Reverts 2 files
* bump apollo-datasource-rest to 3.6.1
* Fix RESTDataSource import
* fix ApiClient template
* fix parameters in callApi, add requestInit param
* change parameters to RESTDataSource convenience methods
* add .babelrc file, even in ES6
* simplify .babelrc... no need for all those fancy things, i think
* fix API test mustache template
* Update package.mustache
* add Set as a language-specific primitive
* Update JavascriptApolloClientCodegen.java
* make babel packages dev dependencies only
* Get inspiration from the main Javascript Generator 😖
* correctly get the basePath from spec
* fix basePath template reference
* Do not sanitize project description
Project descriptions are a multiline string — we just need to escape a few special characters (which we're already doing by invoking escapeText() on line 334)
* Fix module name when generating scoped package
If we set the project name to "@myorg/mypackage" (scoped package[1]), running `npm test` will fail, as it will generate faulty code.
[1] https://docs.npmjs.com/about-scopes
* Uses the same util to add all imports
* Removes unneeded class variable definition
* Samples regenerated for Groovy
* Fixes imports in Lua so object import does not show up
* Fixes nim imports
* Fixes proto generation
* Removes accidental new protobuf sample
* Improves proto allOf test
* Controls import addition with parametersAndResponsesImportFromV3SpecLocations
* More import protection in fromFormProperty
* More test fixes
* Samples regenerated
* Do not import composed schemas if those features are not supported
* Samples regenerated
* Adds new param importContainerType
* Fixes tests
* Samples regenerated
* Turns off importContainerType in JavaMicronautAbstractCodegen and regens samples
* Reverts most import changes, puts original imports behind a constant check
* Samples regenerated
* Updates model imports, samples regenerated
* Removes typeMapping and instantiationMap types from getImports
* Reverts template and regens samples
* Revers generator java files
* Stops setting complexType on codegenParameter
* Adds missing import back in
* Reverts languageSpecificPrimitives changes
* Samples regenerated
* Regnerates samples
* Reverts proto files
* Removes hoistParameterArrayItemBaseTypeHigher
* Samples regen
* Reverts parameter property
* Turns off importContainerType in getContent
* Samples regenerated
* Uncomments java test
* Adds imports for codegenParameter.schema
* Changes property name to importFromV3SpecLocations
* Changes property name to addSchemaImportsFromV3SpecLocations
* Removes unused java codes
* Fixes javadoc
* Removes extra docs file
* Add typescript-axios/with-separate-models-and-api-inheritance sample as test for #13203
* [typescript-axios] Add // @ts-ignore to imports in models if withSeparateModelsAndApi is set
* [typescript-axios] Update samples
* Fixed regular expression in python client codegen
The previous regular expression was too loose, including any last character in the second group. This commit fixes that, making sure we only remove leading forward slashes, trailing forward slashes or trailing `\i`.
This commit closes 13069.
* Added generated files
* Edit comment
* Add test cases
Co-authored-by: antonio.silva <antonio.silva@feedzai.com>
* Bump jimschubert/query-tag-action from 1 to 2
Bumps [jimschubert/query-tag-action](https://github.com/jimschubert/query-tag-action) from 1 to 2.
- [Release notes](https://github.com/jimschubert/query-tag-action/releases)
- [Commits](https://github.com/jimschubert/query-tag-action/compare/v1...v2)
Signed-off-by: dependabot[bot] <support@github.com>
* Use a normal variable name inside a function, no need to make it private.
* Pass on authentication names because authentication implementations may need those!
* Generate Petstore samples.
* Allow authentication implementations to apply header and query parameters asynchronously.
* Allow inherited implementations to define a type for authentication class.
* Generate Petstore sources.
* Remove `authNames` from API client and authentication classes.
* Reference properties with `this.` in case one of them has the same name as a local variable.
* Regenerate Petstore source code.
* Revert adding a generic T in `ApiClient`.
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* avro-schema generation fix for arrays with ref to enum (or any non primitive type) to include modelPackage prefix
* sample scenario and generated outputs for avro-schema
* create avro-schema dedicated test file
@@ -68,13 +68,13 @@ If you find OpenAPI Generator useful for work, please consider asking your compa
## Overview
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification) (both 2.0 and 3.0 are supported). Currently, the following languages/frameworks are supported:
| 7.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/7.0.0-SNAPSHOT/) | Feb/Mar 2023 | Major release with breaking changes (no fallback) |
| 6.1.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/6.1.0-SNAPSHOT/) | 03.08 2022 | Minor release with breaking changes (with fallback) |
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
(if you're on Windows, replace the last command with `java -jar modules\openapi-generator-cli\target\openapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g php -o c:\temp\php_api_client`)
<!-- RELEASE_VERSION -->
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.0.1/openapi-generator-cli-6.0.1.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.1.0/openapi-generator-cli-6.1.0.jar)
<!-- /RELEASE_VERSION -->
To get a list of **general** options available, please run `java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar help generate`
@@ -867,6 +868,8 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2022-06-01 - [API First, using OpenAPI and Spring Boot](https://medium.com/xgeeks/api-first-using-openapi-and-spring-boot-2602c04bb0d3) by [Micael Estrázulas Vianna](https://estrazulas.medium.com/)
- 2022-07-01 - [Generate API contract using OpenAPI Generator Maven plugin](https://huongdanjava.com/generate-api-contract-using-openapi-generator-maven-plugin.html) by [Khanh Nguyen](https://huongdanjava.com/)
- 2022-07-22 - [使用OpenAPI Generator Maven plugin开发api优先的java客户端和服务端代码](https://blog.roccoshi.top/2022/java/openapi-generator%E7%9A%84%E4%BD%BF%E7%94%A8/) by [Lincest](https://github.com/Lincest)
- 2022-08-01 - [Tutorial: Etsy Open API v3 (ruby)](https://blog.tjoyal.dev/etsy-open-api-v3/) by [Thierry Joyal](https://github.com/tjoyal)
- 2022-09-03 - [OpenAPI Generator For Go Web Development](https://blog.kevinhu.me/2022/09/03/03-openapi-generator/) by [Kevin Hu](https://twitter.com/Oldgunix)
## [6 - About Us](#table-of-contents)
@@ -1094,7 +1097,7 @@ If you want to join the committee, please kindly apply by sending an email to te
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.