Skip to content

java-spring: Spring Boot fails to parse LocalDate query parameter - #3860

Merged
macjohnny merged 1 commit into
OpenAPITools:masterfrom
peyerroger:bugfix/2053
Sep 11, 2019
Merged

java-spring: Spring Boot fails to parse LocalDate query parameter#3860
macjohnny merged 1 commit into
OpenAPITools:masterfrom
peyerroger:bugfix/2053

Conversation

@peyerroger

@peyerrogerpeyerroger commented Sep 8, 2019

Copy link
Copy Markdown
Contributor

Adds the format annotation so that Spring is able to serialize OpenApi date/date-time format into LocalDate/OffsetDateTime.

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
  • Filed the PR against the correct branch: master, 4.1.x, 5.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

Fixes#2053 Spring Boot fails to parse LocalDate query parameter

Adds the format annotation so that Spring is able to serialize OpenApi date/date-time format into LocalDate/OffsetDateTime.

Introduces a test to ensure that format annotation is correctly added.

Adds the format annotation so that Spring is able to serialize OpenApi date/date-time format into LocalDate/OffsetDateTime.
@peyerroger

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Hi Jim. Your review comments would be very appreciated. Cheers, Roger

@macjohnnymacjohnny left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Thanks for the test!

@macjohnny

Copy link
Copy Markdown
Member

cc @bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04)

@macjohnnymacjohnny added this to the 4.1.2 milestone Sep 9, 2019
@macjohnnymacjohnny changed the title BugFix #2053 Spring Boot fails to parse LocalDate query parameterjava-spring: Spring Boot fails to parse LocalDate query parameterSep 9, 2019
@cbornet

Copy link
Copy Markdown
Member

I think it would be better to configure it globally with a WebMvcConfigurer.
See example here

@diyfr

diyfr commented Sep 9, 2019

Copy link
Copy Markdown
Contributor

LocalDate and LocalDatetime are java standards. OAS Generator output must work without additional code additions

@cbornet

Copy link
Copy Markdown
Member

We can generate the configurer. The only drawback would be for people generating only the endpoints if they didn't use openapi-generator to bootstrap the project. So maybe the annotation is better for them.

@macjohnny

Copy link
Copy Markdown
Member

I am also in favor of the annotation

@macjohnny

Copy link
Copy Markdown
Member

@cbornet if you agree, I merge this PR

@peyerroger

Copy link
Copy Markdown
ContributorAuthor

@cbornet We exactly have this use case. We don't use the generator to bootstrap the application. We'd therefore very much appreciate the approach with the annotations.

@wing328wing328 modified the milestones: 4.1.2, 4.1.3Sep 11, 2019
@jimschubert

Copy link
Copy Markdown
Member

I approve of the annotation usage.

I don't know that this is something you could configure globally, because OAS specifically defines the date formats as full-date and date-time formats of ISO 8601 (https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14). But, OAS also defines the ability to use custom format... so anyone who might extend the generator to support custom date formats would have to reconfigure. I don't think that's as much of a concern with the annotation. Then again, customizations would have to pull upstream template changes, so none of that might be a concern.

@macjohnny
macjohnny merged commit 68967b8 into OpenAPITools:masterSep 11, 2019
hokamoto pushed a commit to hokamoto/openapi-generator that referenced this pull request Sep 12, 2019
…arameter (OpenAPITools#3860)
Adds the format annotation so that Spring is able to serialize OpenApi date/date-time format into LocalDate/OffsetDateTime.
wing328 pushed a commit that referenced this pull request Sep 13, 2019
* First version of Nim Client
* Add some codes
* Add some codes
* Add some codes
* Add some codes
* Add some codes
* First version of Nim Client
* Add some codes
* Add some codes
* [Dart] Fix README template and update testing doco (#3809)
* [Dart] Fix README template and update testing doco
- deleted redundant shell script
- fixed and updated README template
- updated test package and moved to a dev_dependency
- removed old unused dev_dependency packages
- updated testing documentation in petstore sample
* Remove references to dart-flutter-petstore.sh
* Fix typos
* Fix typo
* Support custom git repository (#3757)
* add gitHost param to GeneratorSettings and related
* parameterize gitHost in READMEs
* parameterize gitHost in go.mod
* parameterize gitHost in git_push
* update petstore samples
* run ./bin/utils/export_docs_generators.sh
* run meta-codehen.sh
* Revert "run meta-codehen.sh"
This reverts commit d6d579f.
* Revert "run ./bin/utils/export_docs_generators.sh"
This reverts commit 1b81538.
* Revert "update petstore samples"
This reverts commit f513add.
* run ensure-up-to-date
* Add links to article and video (#3820)
* Better Go code format (#3819)
* better varible naming
* better comments
* better code format for go experimental client
* better comment, update samples
* Add some codes
* Add some codes
* Add some codes
* Add gRPC Protobuf schema generator (#3818)
* add grpc protobuf generator
* update doc
* add new doc
* add windows batch, comment out root proto
* 1792 fix remote spec handling and hash calculation (#3440)
* fixed bug where nullApi.java would be generated. Instead, generated DefaultApi.java to match the default path /{pathParam} (#3821)
* Revert "1792 fix remote spec handling and hash calculation (#3440)"
This reverts commit 2a2eefe.
* Add nickmeinhold to Dart technical committee (#3830)
* Bug #2845 typescript angular inheritance (#3812)
* issue #2845: enable 'supportsMultipleInheritance' on typescript angular client codegen
- note I reran ./bin/openapi3/typescript-angular-petstore-all.sh and no changes occurred.
this suggests to me that the petstore.yaml sample should be improved to make use of the
anyOf / allOf / oneOf keywords, in order to better show the effects of changes on generated code.
* issue #2845: run ./bin/openapi3/typescript-angular-petstore-all.sh
* run `mvn clean package && ./bin/typescript-angular-petstore-all.sh`
* revert extranous files
* fix warnings in csharp-netcore client (#3831)
* Add missing files to the form request (#3834)
* [client][go] avoid duplicated reflect imports (#3847)
* Following up for #3440 (1792 fix remote spec handling and hash calculation) (#3826)
* This patch fixes the bug that we cannot access to remote files when checking file updates.
Following up #3440, supporting auth.
* 1792 fix remote spec handling and hash calculation (#3440)
(cherry picked from commit 2a2eefe)
* fix detecting remote file / local file logic while finding the hash file, taking care of IllegalArgumentException for local files.
* add testcase
* Add a link (#3850)
* Add Element AI to the list (#3856)
* maven-plugin-plugin 3.6.0 (#3854)
* [Java][okhttp-gson] fix failure to deserialize floats (#3846)
* fixed bug where nullApi.java would be generated. Instead, generated DefaultApi.java to match the default path /{pathParam}
* fix to bug #3157
* update samples
* Adds Http Info To Dart Api (#3851)
* [C++][Pistache] Add missing setter for arrays (#3837)
* [C++][Pistache] Add missing setter for arrays
Fixes#3769
* [C++][Pistache] Update Petstore sample
* typescript-inversify: improve check for required parameters, support multiple media types (#3849)
* [typescript-inversify] Allow falsy parameters
A required parameter to an api method must not be `null` or `undefined`.
It can be any other falsy value, e.g. `""`, `0` or `false` though. This
change makes sure an error is only thrown in the former case and not in
the latter.
* [typescript-inversify] Handle multiple media types
The Accept and Content-Type HTTP headers can contain a list of media
types. Previously all but the first media type in the api definition
were ignored. Now the headers are properly generated.
* [typescript-inversify] Fix http client interface
The api service methods allow the `body` parameter to be optional. The
parameter is then passed to an `IHttpClient`. So it needs to be optional
there as well.
Also fixed the sample implementation `HttpClient`.
Fixes#3618.
* [typescript-inversify] Regenerate Petstore sample
* [typescript-inversify] Use more explicit null check
This does not change the semantic of the generated code, but makes it more explicit.
Co-Authored-By: Esteban Gehring <esteban.gehring@gmail.com>
* [typescript-angular] allow empty string basePath (#3489)
* [typescript-angular] Fixing #2731 - empty string basePath
* typescript-angular: refactor base path configuration
* typescript-angular: refactor base path configuration
* Fix/r/serialization fix and minor 3xx resp fix (#3817)
* fix(qlik): fix for minor serialization bug
* fix(r): add petsore generated classes
* fix(r): indendation fixes
* typescript-axios: Fix baseoptions (#3866)
* Fixed missing baseOptions of typescript-axios.
The typescript-axios template was missing the baseOptions setting when building an API Configuration. Set it.
* update sample.
* re-generate typescript axios samples
* Rename gRPC generator to "protobuf-schema" (#3864)
* rename grpc generator to protobuf-schema
* update doc
* Prepare v4.1.2 release (#3873)
* update samples
* update date
* fix version in readme
* BugFix #2053 Spring Boot fails to parse LocalDate query parameter (#3860)
Adds the format annotation so that Spring is able to serialize OpenApi date/date-time format into LocalDate/OffsetDateTime.
* update doc, samples (#3875)
* update stable release
* Update the batch for Windows
* Add a test snippet
* Update ensure-up-to-date
* Add Nim to README.md
* Ran ensure-up-to-date to pass CircleCI tests
jimschubert added a commit that referenced this pull request Sep 13, 2019
* master: (22 commits)
various minor improvements to nim generator (#3883)
Add Nim client code generator (#3879)
updated google-api-client version from 1.23.0 to 1.30.2. Bugfix #3625 (#3882)
typescript-fetch: fix missing comma in multiple imports (#3881)
[scala][client] add Scala code generation test (#3859)
typescript-node: Use HttpError class when rejecting promises (#3876)
update stable release
update doc, samples (#3875)
BugFix #2053 Spring Boot fails to parse LocalDate query parameter (#3860)
fix version in readme
Prepare v4.1.2 release (#3873)
Rename gRPC generator to "protobuf-schema" (#3864)
typescript-axios: Fix baseoptions (#3866)
Fix/r/serialization fix and minor 3xx resp fix (#3817)
[typescript-angular] allow empty string basePath (#3489)
typescript-inversify: improve check for required parameters, support multiple media types (#3849)
[C++][Pistache] Add missing setter for arrays (#3837)
Adds Http Info To Dart Api (#3851)
[Java][okhttp-gson] fix failure to deserialize floats (#3846)
maven-plugin-plugin 3.6.0 (#3854)
...
@wing328

Copy link
Copy Markdown
Member

@peyerroger thanks for the PR, which has been included in the v4.1.3 release: https://twitter.com/oas_generator/status/1180123829626003456

sburnicki pushed a commit to sburnicki/openapi-generator that referenced this pull request Dec 22, 2020
sburnicki pushed a commit to sburnicki/openapi-generator that referenced this pull request Jan 5, 2021
wing328 pushed a commit that referenced this pull request Jul 29, 2021
* [kotlin-spring] Support query params with model objects (#8080)
Must fix#8080
* [kotlin-spring] Support parsing date and date-time parameters
adopted #3860 for kotlin-spring
Co-authored-by: Мышкин Максим <m.myshkin@tinkoff.ru>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Spring Boot fails to parse LocalDate query parameter

6 participants

@peyerroger@macjohnny@cbornet@diyfr@jimschubert@wing328