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

[cli] Enable recommendations on validate command #292

Merged
merged 1 commit into from
Jun 17, 2018

Conversation

jimschubert
Copy link
Member

@jimschubert jimschubert commented Jun 13, 2018

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 and ./bin/security/{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\.
  • Filed the PR against the correct branch: master, 3.1.x, 4.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

see #142

Adds a --recommend option to cli's validate.

validate with no switches has no functional change; it will print errors and exit with status code 1.

validate --recommends will work in the following way:

  • If spec has errors + recommendations, output is written to stderr and exit code is 1
  • If spec has no errors but recommendations, output is written to stdout, and exit code is 0

In all cases, no errors/recommendations outputs a message that there are no issues and status code is 0.

Sample spec:

openapi: "3.0.0"
servers:
  - url: http://petstore.swagger.io/v1
paths:
  /:
    get:
      responses:
        '200':
          description: A paged array of pets
          headers:
            x-next:
              description: A link to the next page of responses
              schema:
                type: string
components:
  schemas:
    Pet:
      required:
        - id
        - name
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        tag:
          type: string
    Pets:
      type: array
      items:
        $ref: "#/components/schemas/Pet"
    Error:
      required:
        - code
        - message
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string

Sample command(s):

java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar validate --input-spec invalid.yaml --recommend

java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar validate --input-spec invalid.yaml

Sample output:

Validating spec (.bak/invalid.yaml)
Errors:
	-attribute info is missing

[error] Spec has 1 errors.
Validating spec (.bak/invalid.yaml)
Errors:
	-attribute info is missing
Warnings:
	-Unused model: Pets
	-Unused model: Error
	-Unused model: Pet

[error] Spec has 1 errors.

note: output is almost identical to error/warnings from #251. There's possibly opportunity there once both are merged to combine outputs.

Copy link
Contributor

@ackintosh ackintosh left a comment

Choose a reason for hiding this comment

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

I've run the functionality locally and it works fine as we expected. 👍

Copy link
Member

@wing328 wing328 left a comment

Choose a reason for hiding this comment

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

Looks good to me 👍

@wing328 wing328 merged commit 97bab92 into OpenAPITools:master Jun 17, 2018
@jimschubert jimschubert deleted the validate-but-with-warnings branch June 17, 2018 20:07
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

3 participants