* Update ElixirClientCodegen.java
* Refine the regular expression for atoms
The original regex incorrectly matched `@atom` (unquoted atoms
cannot begin with @). However, through testing with `iex`, it also turns out that the atom
`:@` is legal.
The following atoms will now be quoted that would have been
incorrectly not quoted:
- `:@type`
* Add model to petstore client to test new atom creation regex pattern
* [C] Don't convert post body strings to JSON
If the body provided for the api request is a just a string itself,
don't try to convert it to JSON, simply submit the string.
* [C] Implement BearerToken authentication
* [C] Handle nullable fields correctly
* [C] Fix implementation of FromString for enums
* [C] Update the test schemas to cover the changes
* Update samples
* Fix the updated samples
* [C] Add the new samples folder to the CI workflow
* Fix#19566 implemented the missing definition of declared methods inside openapi-generator/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/modelbase-header.mustache, have also be added two missing body of methods definitions
* Regenerated cpp-restsdk client samples
* Fixed shared_ptr creation
* [cpprestsdk] Implement enum inside objects
* [kotlin-spring] Fix no List being used for an array of files using multipart/form-data
* [kotlin-spring] Use Spring's MultipartFile class for incoming Files instead of Spring's Resource class.
* [kotlin-spring] Add test to ensure that return type for files is `org.springframework.core.io.Resource`
* [kotlin-spring] Ensure Array is used for lists of files in generated Api class
* Update samples
* [kotlin-spring] Move conditional usage of MultipartFile to optionalDataType.mustache. Update samples
* update samples
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* feat(typescript-angular): add support for Angular V19
fix#20204
* feat(typescript-angular): add options to override angular deps + refactor deps definition
add tsVersion, rxjsVersion, ngPackagrVersion and zonejsVersion options to override default config if new version of Angular is available but not yet implemented in openapi-generator
refactor Angular dependencies definition in separate readable yaml config file
fix#20204
* feat(typescript-angular): add better angular 19 exemple for ci testing
fix#20204
* feat(typescript-angular): unify tsVersion param
fix#20204
---------
Co-authored-by: Thibaud SOWA <thibaud.sowa@equasens.com>
* fix(typescript): remove incorrect file extensions
url, http, and https are Node.js core modules, and form-data
should be loaded using a bare specifier. This commit removes
the file extensions from these imports.
* update samples
* Updated README.mustache file for the Erlang server generator. Fixed one error and updated the usage instructions
Changes made to the Erlang server generator's user instructions ("README.mustache" file):
1. Corrected the argument in section 4.1 of the user instructions.
In openapi_server:start/2, the second argument for the generated Erlang code must now be in a different format than proposed in the instructions (see lines 13-16 of the "server.mustache" file).
Initially, the server failed to start, and after some debugging, I discovered that the argument format did not match the server's expectations, causing the port number not to be passed to cowboy:start_clear/3. This has now been fixed.
2. Reviewed and updated the text of the user instructions to remove any ambiguities.
3. Tested the user instructions for accuracy and completeness.
* erlang-server sample recompiled
* README fix
* Fixed README.mustache template markdown for erlang-server. Re-generated erlang-server sample.
* Update README.mustache
* Sample 'erlang-server' re-generated
* update samples
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [rust][reqwest] support binary type for upload and download
* [rust][reqwest] support binary download in supportMultipleResponses contexts
* [rust][reqwest] support binary responses that don't have any return type
* erlang-server: add jesse to app.up release
* erlang-server: remove dialyzer errors that might not be related to the program
* erlang-server: minor fixes to return types and generated docs
* C: add a template for an empty any_type.h header
Some generated C apis fail to build because the source files get
'#include "any_type.h"' lines, but no such header gets generated. As a
simple fix, add a new template for an empty file with that name. This is
enough to fix the problem for us, because all the generic type stuff is
handled by object_t.
* C: fix enums
I'm guessing that enums have not been used much with the C generator
before, because they always seem to produce code that doesn't build, or
that tries to free them after use. This patch fixes all the problems
we've encountered so far, except for those that need checking the return
type. I'll come back to that later.
* C: fix confusion of 'classname'/'classFilename'
* C: fix issues with returned enums
Currently, the C templates never check if a function returns an enum
inside mustache, so when that happens the generated code has broken
return types and doesn't build. I originally tried to fix this by
extending CodegenOperation to implement a 'returnTypeIsEnum' check, but
William Cheng suggested[1] that I use the existing 'returnProperty'
instead:
https://github.com/OpenAPITools/openapi-generator/pull/14379#discussion_r1064636735
So do that.
* C: update the samples
As required for a pull request, run the generate-samples.sh script and
commit the changes.
* update samples
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* chore(go): add failing test for JSON marshalling
Adds a small schema (FruitJuice) which contains a required gmFruit,
which inherits using AnyOf. This fails to correctly marshal as JSON.
* fix(go): use non-pointer receiver for JSON marshal
In the case of a required anyOf property, JSON marshalling would has
been incorrect.
Required properties are not nullable, and thus always use value
receivers. For the single case of anyOf models, a pointer receiver was
used for MarshalJSON. All other instances of json marshalling use value
receivers.
This change is simply to use a value receiver instead of a pointer
receiver in the template for `MarshalJSON` on anyOf models.
---------
Co-authored-by: Per Hallgren <perhallgren@users.noreply.github.com>
* [R client] better support for binary/compressed responses
* cleanup
* revert change after PR review
* update samples
* fix R tests
* move private api methods to api-client, revert breaking method name change
* fixes(java/restclient) Force usage of custom converter
Insert custom converter at the beginning of the 'RestClientBuilder' converter list so as not to use default 'MappingJackson2HttpMessageConverter'
Close#20111
* update samples
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* feat(gdscript): sketch implementation of gdscript target language
This does not really work yet, but it's a start.
Results are not denormalized, no support for enums nor datetimes,
and thousands of other features are missing.
I still don't know how we are going to denormalize JSON+LD
without writing a whole GDScript lib for it…
* feat: add an exhaustive list of keywords reserved in GDScript
I've also provided the small python script I used to generate the list.
* refacto(gdscript): start using partials in templates
Whilst I'm racking my brains trying to figure out integration testing…
* test(gdscript): prepare a demo and integration testing
* fix(gdscript): do not use subclasses, use plain POGO
(plain ol' godot object)
One: I don't know how they work under-the-hood.
Two: I'm very confused over-the-hood.
Tri: We do not need them.
* refacto(gdscript): move demo files to their own directory
I know I'm making a lot of commits for not much,
but now I'm opening the sample files with Godot as well,
and doing unholy things with filesystems,
so I'm not taking any chances.
It's all going to be squashed anyway. :)
* fix(gdscript): sample as a Godot project
It works ! I can now write integration tests in GDScript.
The real work starts now.
/spend 25h
* feat(gdscript): serialize and send body params
The test suite is now past its first hurdle, the 415 HTTP status code,
and went straight into an unexpected error 500.
I suspect the server does not like me trying to set the pet id at 0,
because that's what we're trying to do right now.
Godot is crashing a lot, mostly because I don't know how to make Callable.NOOP
and my current solution hints at optional on_success and on_failure,
yet if we omit them the engine will ragequit.
* feat(gdscript): check request body for required yet missing properties
Now we'll get a nice error when we forget to set a required property.
The demo is now able to:
- connect
- create a user
- login as that user
- create a pet
* feat(gdscript): namespace core classes as well with apiPrefixName
This makes our usage of `class_name` a little more acceptable.
* feat(gdscript): support prefixes and suffixes for class names
This will crutch namespacing well enough for most uses.
* feat(gdscript): handle enums, naively
* feat(gdscript): support basic API endpoint param constraints
- minLength
- maxLength
- minItems
- maxItems
- minimum
- maximum
- pattern (no flags)
* feat(gdscript): handle header params and header customization
We also support serializing to application/x-www-form-urlencoded now.
Next up: DateTimes !
* feat(gdscript): handle Date and DateTime like Strings
There's no timezone support in Godot for DateTimes.
* feat(gdscript): support plain text responses
* feat(gdscript): support collections of models
Those are Arrays, not custom collection objects.
* feat(gdscript): configure default host from OAS
* feat(gdscript): some documentation and better config
We don't need no factories nor singletons ; config is enough.
* docs(gdscript): document usage a little
* feat(gdscript): add more reserved words, skip jsonld models and configure features
We can now generate a client for an OAS server running ApiPlatform (PHP).
* feat(gdscript): improve logging with a configurable log level
* feat(gdscript): add support for Basic Bearer and Header ApiKey
(but I can't find the `description` template handler)
* fix(gdscript)
Too late to amend >.<
* fix(gdscript)
dangsarnit
* chore(gdscript): clean up a sprint artifact
* fix: don't forget the HTTP error code when relevant
* feat: use Resource as base class for models
* fix. Default string values now with "quotes"
* temporary remove settings as godot api have changed
* kick ci
* docs: review gdscript java class
* feat: support for TLS, some refacto, some review
There's still a lot of holes, TODOs and FIXMEs.
* feat: experimental support of Request inline objects
The inline response objects are still not supported.
* feat(gdscript): support inline request and response objects
* chore(gdscript): review the templates
* fix(gdscript): unexpected nulls in default values
{{#if defaultValue}} evaluates to true for null if we call super here.
* refacto(gdscript): replace "bee" prefix by "bzz", use a constructor
Now we pass the config and the client via the constructor.
This reduces the area of the public surface a bit, for the better I think.
This commit also cleans up the class name shenanigans.
* fix(gdscript): add missing file
* test(gdscript): refactor the test project to use the generated lib as addon
Since there is no singleton in the generated client, the addon need not be enabled in the project configuration to be usable.
The --headless mode is broken for now, as things changed in Godot 4 since the beta.
* docs(gdscript): document petstore server ADR
* test(gdscript): add GUT and an integration test
We used the latest stable GUT, but a feature we're going to need was merged today, so we'll need to update it either to master or to the next release at some point.
* refacto(gdscript, breaking): use an ApiResponse object in success callbacks
/spent 6d since the beginning
* test(gdscript): update integration tests
/spend 2h
* docs(gdscript): explain the new ApiResponse
Also moving core templates to their own subdir, for clarity.
/spend 10m
* chore(gdscript): review, document, clean up
/spend 2h
* test(gdscript): test the delete operation as well
/spend 7m
* feat(gdscript): update GUT and exit with appropriate code
/spend 2h
* docs(gdscript): add Gdscript's PI
Hire me while I'm available ! :D
I'd rather code than make a CV.
* feat(gdscript): support reserved keywords
Also adding some more assertions,
and using our own OAS file now.
/spend 3h
* refacto(gdscript): use "base" instead of "bee"
/spend 1h
* feat(gdscript): improve descriptions
/spend 1h
* fix(gdscript): await before polling
Contributed by @jchu231
* docs(gdscript): review the template files
* docs(gdscript): review and generate docs
---------
Co-authored-by: Bagrat <b.saatsazov@gmail.com>
* adding support for useResponseEntity into spring-http-interface java spring generator
* adding samples for @StatusResponse into spring-http-interface java spring generator
* additional changes to sample
additional changes to samples jdk17
* adding sample files
* extra adjustments
* fixing generator version
* fixing status code in samples
* some rollback
* some rollback 2
* Fix compilation error when validate is used on Nullable values
* Update samples
* Switch Nullable Into Option trait implement to From
* Update samples from rebase
* [swift][client] rename api client to api configuration
* [swift][client] rename api client to api configuration
* [swift][client] rename api client to api configuration
* [swift][client] rename api client to api configuration
* [swift][client] rename api client to api configuration
* [swift][client] rename api client to api configuration
* Update modules/openapi-generator/src/main/resources/swift6/api.mustache
Co-authored-by: Lennard Sprong <x-sheep@users.noreply.github.com>
* [swift][client] rename api client to api configuration
* Update modules/openapi-generator/src/main/resources/swift6/api.mustache
Co-authored-by: Lennard Sprong <x-sheep@users.noreply.github.com>
* Update modules/openapi-generator/src/main/resources/swift6/api.mustache
Co-authored-by: Lennard Sprong <x-sheep@users.noreply.github.com>
* Update modules/openapi-generator/src/main/resources/swift6/api.mustache
Co-authored-by: Lennard Sprong <x-sheep@users.noreply.github.com>
* Update modules/openapi-generator/src/main/resources/swift6/api.mustache
Co-authored-by: Lennard Sprong <x-sheep@users.noreply.github.com>
* Update modules/openapi-generator/src/main/resources/swift6/api.mustache
Co-authored-by: Lennard Sprong <x-sheep@users.noreply.github.com>
* Update modules/openapi-generator/src/main/resources/swift6/api.mustache
Co-authored-by: Lennard Sprong <x-sheep@users.noreply.github.com>
* [swift][client] rename api client to api configuration
---------
Co-authored-by: Lennard Sprong <x-sheep@users.noreply.github.com>
* added support for 'oneOf' types represented as unions
also updated libs and an 'errors' field rename to address
name clashes with likely/popular field names
* Created cask-specific petstore example which
Includes a oneOf and allOf example
* [kotlin-server] Bump Kotlin versions to latest
* Run tests on more samples
* Fix typo in workflow definitions
* Update samples
* Bump Gradle to 7.6.4
* Some further tweaks
* Bump Gradle versions
* Fix Gradle version syntax
* Add of a first working generator for FastEndpoints framework
Generator that support the basics of a FastEndpoints project
https://fast-endpoints.com/
* Add respose code documentation support
* Add an option to enable use of problem details
* Clean enum and model
* Add an option to generate record for requests/models
* Update sample
* Add support of nullable types
* Add option to enable authentication
* Add option to generate validators
* Clean readme.md file
* Add option to enable response caching
* update readme template
* Add missing files references
* Update generated sample
* Add link to documentation
* Add generator documentation
* correctly support packageName
supportingFiles additions moved to processOpts()
* improve useAuthentication option handling
Avoid to copy an empty file
* processOpts, move call to parent at the end
* Update generated sample
* Refactor and fix super.processOpts(); call order
* Handle the case of multi-line description
* Rename field to match naming conventions
* Add useApiVersioning option
* Update generated sample
* Add generator documentation
* Fix record when model contains optional properties
* Add configuration files for each option
* Add sample project for each configuration
* Add GitHub Action workflow for sample projects
* Add FastEndpoints BindFrom attribute on path, query and form params
* Update sample generated projects
* Fix validator template
* fix alphabetical order
* Use fully qualified name for FastEndpoints
* Add options to set GUID to be used in sln file
* update sample projects
* Update generators.md
* Fix path in github workflow
* Put readme, gitignore and solution file at the root of generated project
* update sample projects
* Remove the projectGuid option
This Guid need to be constant, it is related to project type
* update sample projects
* fixed missing output
* bug fix
* add new sample
* build samples again
* delete sample
* move the sample and add to github workflow
* remove model not needed for this test
* handle specs with no models
* better handling of duplicate operation ids
* fixed mistake in resolving conflicts
* build samples again
* revert a change sent in another pr
* Scala-cask improvements:
* fixe for grouped methods which have routes containing dashes.
Previously our OperationGroup work-around would potentially
Create methods like ‘foo-bar’, which isn’t a valid function name
* Fix to not import some.package.Array[Byte] when binary format is specified
* Fix for grouped operations which contain duplicate query parameters
* Fix for binary response fields. This can come up with the following example
"responses" : {
"200" : {
"content" : {
"application/json" : {
"schema" : {
"format" : "binary",
"type" : "string"
}
}
},
"description" : "data"
},
* Fix for enum model classes
Extracted complex logic for ‘asData’ and ‘asModel’ transformations for properties
* Introduced a generic effect F[_] for services
This was done to support composable services
(Service A calls Service B) by using monadic
Effect types (ones which can flatMap)
* Fixed unique union types for responses, asModel and asData fixes for non-model types
* scala-cask: regenerated samples
* Fix for reserved-word properties in the API
* Fix for null imports and reserved-word enum types
* Fixes for api methods with backticked params
* Fix for duplicate (by name) grouped params
* small syntax fix
* logging response type
* Regenerated samples
* String.format fix
* [julia] improve enum support
Improved enum support. Added an override for `postProcessModels` method in julia code generator to do enum post processing. Added an override for `toEnumValue` method in julia code generator to generate enum values correctly based on julia types. Updated templates to use `#enumVars` for generating enum values.
* generated samples
* python-pydantic-v1: Keep trailing commas for tuples when enum has just single member
* Update samples
* Add test for single member enums
* Refactor test name
* [Kotlin] Properly document nonPublicApi CLI option
* [Kotlin] Respect parameter name of parent KSerializer to avoid miss-behavior
* [Kotlin] Introduce support for Kotlin Explicit API Mode for Kotlin-Client generator (resolves#16506)
* fix: csharp mustash fully qualify namespace Path
The generated code of Csharp get a fully quallify namespace for PATH
using Path = global::System.IO.Path;
* mend
* Remove alias for fully qualify Path class
* Added Rust Reqwest trait based client
* Fixed Cargo imports for reqwest trait template
* Added support for mockall to Rust reqwest trait library
* Added MockApiClient when mockall and topLevelClient are enabled
* Added missing flags to Rust generator documentation
* feat: add support for single argument and bon builder
Adds support for single argument and bon building for the new
reqwest-trait generator
* Rebuilt rust samples
---------
Co-authored-by: Troy Benson <troybensonsa@gmail.com>
The api.mustache template only uses the reflect package if there is a
query parameter which `isCollectionFormatMulti`. The import for the
reflect package is however added if _any_ parameter is
`isCollectionFormatMulti`.
If the parameter which `isCollectionFormatMulti` e.g. is in the body
instead of the query, this leads to the import being part of the
generated code but not used and the code does not compile.
This updates reworks the import handling for the `reflect` package so
that it is only added if there is a query parameter which
`isCollectionFormatMulti`.
Co-authored-by: Per Hallgren <perhallgren@users.noreply.github.com>
Updated the README company list by adding CERN, which is currently experimenting with OpenApi Generator to streamline API calls in a newly developed business application.
* [kotlin] Sanitize one_of and any_of model variable names to avoid compilation errors (#19942)
* [kotlin] add missing validateJsonElement method to oneOf and anyOf model templates (#19942)
This fixes generation of a Rust library for OpenAPI specifications
where `info.version` was a single-digit number. This happened to for
[this](db005f2e55/openapi.yaml (L10))
specification. The fix for this issue is similar to the one in !17440.
* Add licenseName option to typescript
* Update documentation
* Fix import in test
* Consolidate typescript test OptionsProviders
* Rename Typescript to TypeScript
* issue-1960: Add nullability annotations to Java generated clients
Motivations:
Have generated clients properly annotated for nullability to be able to check code using them with tools like NullAway
Modifications:
* Add nullable_var_annotations template to handle nullability annotation on vars
* Add pojo templates to use the nullability template
* Adapt tests
* issue-1960: Add nullability annotations to Java generated clients
Modifications:
* Run export_docs_generator.sh script to update samples
Previously, if an operation had a 'servers' block, the template would
emit code requiring a `serverConf` local variable. Unfortunately, the
template would not emit this variable, because it was looking for a
`servers` variable in the wrong context.
This change makes the template emit an anonymous block containing a
unique server configuration for each operation.
I did not test this change beyond a simple code inspection, there are
other problems with the code generator which prevent it from running on
my API definition.
* Stop using obsolete MaxTimeout
* Convert timeout to a timespan, rather than update the configuration object
* Use async overload of RestClientExtensions.Deserialize
* Update samples
* Fix typo
* Undo timeout change
* Remove further Qt support before Qt 5.15.2
This is a follow-up pull request for [#19164] (https://github.com/OpenAPITools/openapi-generator/pull/19164), which removes the further handling of older Qt versions.
* Updates samples to match the mustach config files.
---------
Co-authored-by: Daniel Simon <mail@dlins.de>
* [Kotlin Server] Update Ktor to latest version; move config to kts
* Bump gradle version for kotlin server samples
* Replace deprecated gradle API
* Bump gradle to 7.6.4
* Improve typescript-angular README.mustache
- Add syntax highlighting to code blocks
- Correct heading levels
* Add space between heading and convert bare url to angle brackets link
* Update samples
* Added support for 'additionalProperties:true' to scala-cask generator
additionalProperties means the request can contain arbitrary
additional properties, and so this change adds an 'additionalProperties'
field to request objects which is a json type.
* fixed warning in example scala-cli project
* updated samples
* addressed codegen comments
* Remove calculateRequestOrder Function
This PR removes the calculateRequestOrder function from the codebase and addresses the bug described in issue #19110. After a thorough review, it was determined that the function was unnecessary due to its redundant logic and lack of unique functionality.
* delete import java.lang.*;
* delete import java.lang.*;
* Remove calculateRequestOrder Function
This PR removes the calculateRequestOrder function from the codebase and addresses the bug described in issue #19110. After a thorough review, it was determined that the function was unnecessary due to its redundant logic and lack of unique functionality.
* delete import java.lang.*;
---------
Co-authored-by: rmarqmo <rmarqmo@mercadona.es>
* Add type information about classes and operation-ids
* Remove unused logger included header
* Bugfix badmatch in delete_resource handler
* Bugfix: respect original indentation of operation_ids
* Bugfix json schema correct refs
* Add a bit more documentation
* Regenerate erlang-server handlers
* Fix#19566 implemented the missing definition of declared methods inside openapi-generator/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/modelbase-header.mustache, have also be added two missing body of methods definitions
* Regenerated cpp-restsdk client samples
* Fixed shared_ptr creation
* fixed missing output
* bug fix
* add new sample
* build samples again
* delete sample
* move the sample and add to github workflow
* remove model not needed for this test
* handle specs with no models
* fix(core): single value enums (`const`) are not generated correctly in `3.1` specs
* fix: const enums
* chore: update samples
* chore: update samples
* feat(avro)/refactor: unify `*_POST_PROCESS_FILE` bahviour and code
* refactor: use existing function
* test: add simple test for post processor execution
* test: restrict concurrency to 1
* docs: add explanation to method
* fix attemp
* use java.time.Instant
* fix client gen
* Tweeks
* header and form
* use scala 3 enum
* more tweeks
* add additional properties; add auth
* add form media type
* add modelsOnly
* add unit tests
* add petstore samples
* add doc
* add new samle to .github/workflows/samples-scala.yaml
* update build.sbt template
* simply the baseclient
* add None to optional field
* tweek auth model and format
---------
Co-authored-by: Jenny Leahy <jennyleahy@JENNYLEAHY.localdomain>
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] make async await the default response library
* [swift6] make async await the default response library
* [swift6] make async await the default response library
* Add @deprecated tag for deprecated operations
* Add test helper to verify a given line
* Add test to verify deprecated method
* Regenerate samples
* Delete tmp files after test
* Remove assertFileContains on specific line
* Update modules/openapi-generator/src/main/resources/typescript-node/api-single.mustache
Co-authored-by: Joscha Feth <joscha@feth.com>
* Correct indentation
* Regenerate samples
---------
Co-authored-by: Joscha Feth <joscha@feth.com>
* Allow Content-Type merge-match+json for encoding
* Changes JSON recognition to more flexible regex
* Removes now useless JSON format list
* Removes empty spaces
* Adds explanatory PHPDoc comment
* Moves Json-detection to class HeaderSelector
* Update HandlebarsEngineAdapter.java
The old MY_FIELD_VALUE_RESOLVER.INSTANCE is equivalent to FieldValueResolver.INSTANCE, which is assigned `new FieldValueResolver();` so our custom class was never used.
* Add test verifying partial template works; Extract accessAwareFieldValueResolver; Add test verifying priority fo values extracted from object
* Bugfix: exclusiveMinimum/Maximum must be booleans
* Add support for validating and decoding base64 byte strings
* Add support for validating RFC3339 datetime
* Simplify validate function for performance
* Regenerate erlang-server handlers
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* [swift6] general improvements
* Add documentation to server and handlers
* Respond to at least one path-server
* Let url servers override base path
* Handle reading bigger bodies in cowboy
* Improve json error handling
* Regenerate erlang-server handlers
* Rework API module for performance and completion
* Regenerate erlang-server handlers
* Add C++ header for cpp-pistache-server to fix breaking CMake build of generated code.
* Sort includes of system C++ headers for cpp-pistache-server.
* Add samples generated from fixing bug #19683.
* Fix export type for typescript interfaces in all platforms (#6805)
* Generated samples and docs
* chore: update samples
---------
Co-authored-by: Kevin Broja <kevin.broja@gus-group.com>
* [swift] small improments
* [swift] small improments
* [swift] small improments
* [swift] make CI pass
* [swift] make CI pass
* [swift] make CI pass
* [swift] make CI pass
* [swift] make CI pass
* [swift] make CI pass
* [swift] make CI pass
* Remove deprecated suppressImplicitAnyIndexErrors property from templates
* Add encoding / decoding tests for the typescript generator
* Add encoding / decoding tests for the typescript-node generator
* [Typescript][Typescript Node] fix deserializing complex types
This fixes deserializing of models that are composed with null,
undefined, or are inside of a map.
* Use more sensible `startsWith` implementation
* Remove use of magic number offsets
* Fix endsWith bounds checking
* Regenerate samples
* fix: `nullable` enums should not serialize a `null` value to a string
* better solution?
* Update modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
Co-authored-by: Joscha Feth <joscha@feth.com>
* chore: Update circle_parallel.sh
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Check references in additionalProperties correctly
Handle references in additionalProperties correctly when determining free-form status
* Update samples
Python 3.12 has been released in October 2023, it should be tested in
the CI.
Python 3.7 is not maintained anymore, removing it from the minimum
required version in `pyproject.toml` files.
With:
```
sampleObject:
type: object
additionalProperties:
$ref: '#/components/schemas/SampleData'
minProperties: 1
description: Map of Charging data policy decisions.
```
and
```
SampleData:
type: object
...
nullable: true
```
We currently generate: HashMap<String, SampleData>, which doesn't allow
null charging data entries. This MR changes this to be
`HashMap<String, swagger::Nullable<SampleData>>`, which thus will allow null data entries.
We do this by moving null-handling to the Java code - primarily `getTypeDeclaration()`.
Note, to some extent this is wrong. In this MR (and previously) we are treating
`nullable: true` as an extrinsic property (like required), whereas it should be an
intrinsic property (and thus `HashMap<String, SampleData>` is correct, but `SampleData`
absorbs the nullability.
This would be possible with this code:
```
enum ChargingData = {
Null,
Present {
...
}
}
```
Which would remove the usage of https://docs.rs/swagger/2.0.2/swagger/nullable_format/enum.Nullable.html.
I haven't resolved this - and have instead done a more targeted fix.
This, along with some other crude code, creates a scenario where we need to
unpick whether something is null. I've left that, though flagged a TODO to tidy it up at some point.
* [Rust Server] Convert Rust comment to Mustache
The comment about auth types supported by the generator shouldn't be
included in the generated code as it's confusing when the API doesn't
support the same auth types.
As such, we convert it from a Rust comment to a Mustache comment
* Update samples
* Fix issue with toString causing wrong value with collections
With collections, calling toString will result in the value becoming [a,b] instead of just a,b.
Using the existing apiClient::parameterToString method ensures it gets parsed correctly if it is a collection
* Updated samples
---------
Co-authored-by: Rasmus Zweidorff Iversen <rzi@jysk.com>
* [Kotlin] Add a new additional property to configure Jackson's `failOnUnknownProperties`
Default to false
* [Kotlin] Unconditionally import `com.fasterxml.jackson.databind.DeserializationFeature`
* [Kotlin] Refactor and add test
* Update ApiClient.mustache
* Update ApiClient.mustache
Jersey doesn't allow request entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* Update ApiClient.java
Jersey doesn't allow entities in method DELETE
* jersey ApiClient.mustache invoke DELETE without entity if empty
* jersey ApiClient.mustache invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* jersey ApiClient invoke DELETE without entity if empty
* fix: object serialization for multipart requests
This PR is essentially
<https://github.com/OpenAPITools/openapi-generator/pull/18140> but for
the asyncio client.
* fix: int serialization for multipart requests
urllib3 handles serializing ints in post params (ref 1), while asyncio
explicitly does not (ref 2).
ref 1: <9316764e90/src/urllib3/filepost.py (L75-L76)>
ref 2: <https://github.com/aio-libs/aiohttp/issues/920>
* test: new fake multipart endpoint with files and body
* test: regression test for stringified body params
* fix: mypy tweak
* fix: FILES regeneration
* feat: object, int serialization for multipart reqs
Extends previous commits (and #18140) to cover the python-pydantic-v1
client as well.
* fix: use async with in test
* test: regression test for pydantic-v1-aiohttp
* test: add regression test to pydantic-v1
Also brings the second test in line with the first, patching
`urllib3.PoolManager.urlopen`
* Upgrade erlang-server code generation and fix is_authorized crashes
* Introduce structured logging
* Improve general formatting
* Update generated files
* Enable erlang server on CI
* Add echo-server testing to CI
* Require OTP27 explicitly in the generated rebar.config file
* Rework handler and API
With this work, json validation becomes optional, fully implemented in
the `_api` module as it was before, but without being forcibly called by
the `_handler`. It is instead left as optional for the user to take
advantage of the exposed callbacks. Jesse also chooses draft-06 as a
default, but these can be chosen manually by the user too, as long as
jesse implements them.
`_handler` also becomes lighter, it now handles all mime types
transparently by forwarding to a user-given module that must implement
`accept_callback/4` and `provide_callback/4` as described in the
`_logic_handler` callbacks. These will simply be the return values of
cowboy_rest's `content_types_accepted` and `content_types_provided`
respectively, and should simply comply with their defined APIs. They
only get two parameters extending the behaviour, so that the user-given
callback can pattern-match on them: the path prefix of the logic
handler, and the operationID of the call.
* Fix return types for provide_callbacks
* Upgrade jesse to incur no dependencies
The less dependencies the built code requires the better.
* Fix dialyzer errors in the generated code
* Apply stronger dialyzer checks
- [ ] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
- [ ] Run the following to [build the project](https://github.com/OpenAPITools/openapi-generator#14---build-projects) and update samples:
(For Windows users, please run the script in [Git BASH](https://gitforwindows.org/))
Commit all changed files.
@@ -17,5 +17,5 @@
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example `./bin/generate-samples.sh bin/configs/java*`.
IMPORTANT: Do **NOT** purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master` (upcoming 7.6.0 minor release - breaking changes with fallbacks), `8.0.x` (breaking changes without fallbacks)
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master` (upcoming `7.x.0` minor release - breaking changes with fallbacks), `8.0.x` (breaking changes without fallbacks)
- [ ] If your PR is targeting a particular programming language, @mention the [technical committee](https://github.com/openapitools/openapi-generator/#62---openapi-generator-technical-committee) members, so they are more likely to review the pull request.
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22)
[](https://join.slack.com/t/openapi-generator/shared_invite/zt-12jxxd7p2-XUeQM~4pzsU9x~eGLQqX2g)
[](https://join.slack.com/t/openapi-generator/shared_invite/zt-2uoef5v0g-XGwo8~2oJ3EoziDSO1CmdQ)
[](https://twitter.com/oas_generator)
[](https://gitpod.io/#https://github.com/OpenAPITools/openapi-generator)
#### Thank you GoDaddy for sponsoring the domain names, Linode for sponsoring the VPS, Checkly for sponsoring the API monitoring and Gradle for sponsoring Develocity
@@ -86,7 +87,7 @@ OpenAPI Generator allows generation of API client libraries (SDK generation), se
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.
In order to use a locally built jar of the generator CLI, you can copy the jar from your local build (i.e. if you were to `build` this repository it would be in `~/openapi-generator/modules/openapi-generator-cli/target/openapi-generator-cli.jar`) into `./node_modules/@openapitools/openapi-generator-cli/versions/` and change the `version` in the `openapitools.json` file to the base name of the jar file.
(example is with a snapshot of `7.9.0`, please change the `version` and `downloadUrl` accordingly)
You can use [locally built JARs](https://github.com/OpenAPITools/openapi-generator-cli?tab=readme-ov-file#use-locally-built-jar) or [`SNAPSHOT` versions](https://github.com/OpenAPITools/openapi-generator-cli?tab=readme-ov-file#use-nightly-snapshot-build) as well.
(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/7.8.0/openapi-generator-cli-7.8.0.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.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`
@@ -664,6 +631,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
gradleProperties:"\n# JVM arguments\norg.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m\n# set timeout\norg.gradle.daemon.idletimeout=3600000\n# show all warnings\norg.gradle.warning.mode=all"
gradleProperties:"\n# JVM arguments\norg.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m\n# set timeout\norg.gradle.daemon.idletimeout=3600000\n# show all warnings\norg.gradle.warning.mode=all"
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.