Found during discussion of #4653 (closed) that DefaultCodegen
has an openApi
property that may remain unset in certain workflows.
This also adds a pattern
property to CodegenResponse
to demonstrate the concerns discussed in #4653 (closed). Rather than introduce all properties defined by OpenAPI Specification for Schema Validation Properties, I've added the single property for pattern. Adding all will change the contract of our response object for templates, and as I've proposed in the issue I think it would be best to rely on an interface which defines the Json Schema Validation Properties and includes getters/setters on targeted Codegen* models.
Current master's state is this:
- CodegenParameter exposes Json Schema Validation properties as public fields
- CodegenProperty exposes Json Schema Validation properties as getters/setters
- CodegenReponse doesn't expose an API explicitly, but these Json Schema Validation properties are accessible via the
schema
property. Forpattern
, this poses an issue because the string is not double escaped to be ready for applying to mustache templates as it is for CodegenParameter/CodegenProperty
This PR will fix the case mentioned in the last bullet point, or at least it gives consistency for this property to template users.
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.