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 (closed)
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.