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] fix handling of special characters in path param names #4897

Merged
merged 2 commits into from Jan 17, 2020
Merged

[Rust Server] fix handling of special characters in path param names #4897

merged 2 commits into from Jan 17, 2020

Conversation

aandyl
Copy link
Contributor

@aandyl aandyl commented Dec 31, 2019

The rust server generator used the names of path parameters directly as the names of regex capture groups and format string substitutions. This is invalid when the path parameter is not a legal rust identifier. I couldn't find a specification of what characters OpenAPI permits in these names, and at least one other generator (python-flask, I think) was sanitizing path param names, so that's what I've done here.

Since I've changed the templates to use {{paramName}} instead of {{baseName}} this has the side effect of changing the previously working camel-case petId to pet_id. This seems desirable from a rust style perspective, but I'm not sure if it could be a backwards compatibility concern.

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. @frol @farcaller @bjgill @richardwhiuk

@wing328
Copy link
Member

wing328 commented Jan 17, 2020

This seems desirable from a rust style perspective, but I'm not sure if it could be a backwards compatibility concern.

Let's consider this as a bug fix and see if anyone has issues with backward-compatibility.


pathFormatString = pathFormatString.replace(paramSearch, paramReplace);
}
op.vendorExtensions.put("pathFormatString", pathFormatString);
Copy link
Member

Choose a reason for hiding this comment

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

I'll rename this with x-path-format-string to conform the vendor extension naming convention (mentioned in the contributing guidelines)

Copy link
Member

Choose a reason for hiding this comment

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

Filed #5020

@wing328 wing328 merged commit 67d23fc into OpenAPITools:master Jan 17, 2020
@wing328 wing328 added this to the 4.2.3 milestone Jan 17, 2020
@aandyl aandyl deleted the path-param-special-chars branch March 29, 2023 18:38
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.

None yet

2 participants