Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Rust Server] Handle array of objects inside an object correctly #5044

Merged
merged 5 commits into from
Jan 25, 2020
Merged

[Rust Server] Handle array of objects inside an object correctly #5044

merged 5 commits into from
Jan 25, 2020

Conversation

richardwhiuk
Copy link
Contributor

For objects, which contain arrays of wrapped strings - e.g.

    ObjectWithArrayOfObjects:
      type: object
      properties:
       objectArray:
         type: array
         items:
           $ref: '#/components/schemas/StringObject'
    StringObject:
      type: string

This currently produces:

struct ObjectWithArrayOfObjects {
    objectArray: Option<Vec<String>>
}

struct StringObject(String);

whereas we should be doing:

struct ObjectWithArrayOfObjects {
    objectArray: Option<Vec<StringObject>>
}

struct StringObject(String);

We actually get it right in one place (when converting header parameters), and wrong in the model definition, which breaks some APIs.

Commits are broken down into:

  • Fixing the bug
  • Adding a test case
  • Updating the samples

Contribution by myself on behalf of @Metaswitch. Reviewed by @mirw

Rust Technical Committee

@frol @farcaller @bjgill

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

@richardwhiuk richardwhiuk merged commit 52e09e2 into OpenAPITools:5.0.x Jan 25, 2020
@richardwhiuk richardwhiuk deleted the rust-server-array-of-objects branch January 25, 2020 18:23
jimschubert added a commit that referenced this pull request Jan 26, 2020
* 5.0.x: (92 commits)
  [Rust Server] Handle array of objects inside an object correctly (#5044)
  [Rust Server] Sanitise enum values (#5042)
  [Rust Server] Add support for primitive arrays (#5041)
  [elm] Fix duplicate coder names (#5100)
  [elm] enum items and parameters (#5051)
  [elm] Fix decoding empty operation responses (#5055)
  resolve merge conflicts in VERSION files
  undo restoring ElmClientCodegenTest.java
  fix merge conflicts
  [dart-dio] Various fixes (#5027)
  Add java code comments based on explanation from Jim Schubert (#5048)
  Execute ./bin/openapi3/go-experimental-petstore.sh script (#5049)
  [docs] Sorted doc outputs and clean up duplicated CliOptions (#5046)
  Add docs/installation.md and docsite index to version update script (#5037)
  [gradle] consistent use of maven url in gradle files (#5045)
  Use HTTPS Maven URL in Kotlin meta generator (#5043)
  [Python] fix numeric enum in python flask, aiohttp (#5019)
  add multipleOf to various codegen classes (#5021)
  Add a link to a youtube video on Pulp and OpenAPI Generator (#5038)
  [scripts] Remove misspelled OPENAPI_GENERATOR_DOWLOAD_CACHE_DIR (#5035)
  ...
@wing328 wing328 added this to the 4.2.3 milestone Jan 31, 2020
@richardwhiuk richardwhiuk modified the milestones: 4.2.3, 5.0.0 Feb 1, 2020
Sign up for free to 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.

2 participants