Skip to content

[openapi-yaml] Prerequisities for Swagger 2 template.#3202

Merged
wing328 merged 1 commit intoOpenAPITools:masterfrom
MichalFoksa:feature/preparation-for-swagger2-template
Jul 12, 2019
Merged

[openapi-yaml] Prerequisities for Swagger 2 template.#3202
wing328 merged 1 commit intoOpenAPITools:masterfrom
MichalFoksa:feature/preparation-for-swagger2-template

Conversation

@MichalFoksa
Copy link
Contributor

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

I am looking for a way to convert from Openapi 3 to Swagger 2 specification. I think openapi-yaml generator with custom template is a good starting point.

In order to start, I needed to modify current generator to:

  1. Group operations by resourcePath (they are grouped by tag currently) so that operations with same path are rendered one after the other:
    Example:
      /pet:
        post:
          .....
        put:
          .....
      /pet/findByStatus:
        get:
        .....

And not (it might happen when grouped by a tag):

      /pet:
        post:
        .....
      /pet/findByStatus:
        get:
        .....
      /pet: 
        put:
        .....
  1. Created a Mustache lambda OnChangeLambda to return fragment only when current fragment is different than previous fragment. It will be used to render endpoint path only for a first operation in group.

  2. Registered lambdas like lowercase, onchage (above one), uppercase, etc.

Later I am hoping to submit Swagger 2 template a new library.

…s with same resourcePath can be rendered one after the other.

2. Lambdas registered: lowercase, uppercase, onchnage, etc.
@MichalFoksa
Copy link
Contributor Author

PR re-based to master.

Copy link
Member

@jmini jmini left a comment

Choose a reason for hiding this comment

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

The change looks OK to me.

@wing328
Copy link
Member

wing328 commented Jul 12, 2019

The CI failure has been addressed in the master

@wing328 wing328 merged commit e81e650 into OpenAPITools:master Jul 12, 2019
@wing328 wing328 added this to the 4.1.0 milestone Jul 12, 2019
@jmini
Copy link
Member

jmini commented Jul 17, 2019

Small code review => PR #3384 (I have one error locally, because I check for hidden vars)

@MichalFoksa MichalFoksa deleted the feature/preparation-for-swagger2-template branch July 18, 2019 06:11
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.

4 participants

Comments