Open evertonmc opened 4 years ago
AutoREST only validates a small number of constraints from the OpenAPI spec. The OpenAPI.NET library validates all constraints that are MUST from the specification. The specific rule that is being violated is here http://spec.openapis.org/oas/v3.0.3#fixed-fields-5 I expect the reason why you are seeing the error above is due to the fact that there is a component schema name with an invalid character. I have seen this happen when people use parentheses in schema names.
The one area that I consider a false positive error is when example values are identified as having the wrong time. I need to remove this as a default validator. If you see errors about issues that are not explicitly prevented by the OpenAPI specification, I will definitely remove those checks.
I have been working on a command line tool that will allow validation. Would that help you to pre-validate OpenAPI documents?
@darrelmiller that's exactly what would help here. The errors are ok, but I wan't to get them before I try to upload the specs to the api management. A CLI tool with the same validation logic would make that happen.
IBM has a command line validation tool - https://github.com/IBM/openapi-validator It won't have identical logic to the APIM errors but I've been using the same logic to validate our documents prior to upload.
@Blackbaud-ChristiSchneider Yeah, in theory any validator that properly validates the spec would be equivalent, but there are definitely some grey areas when it comes to validation. This tool currently is overly aggressive in trying to validate data types of example data which causes all kinds of problems.
I have been working on a command line tool that will allow validation. Would that help you to pre-validate OpenAPI documents?
@darrelmiller can you share this tool a.t.m.?
Please provide a documentation on how to validate openapi and swagger documents for the Azure APIM import. I can't find a way to get the same errors in autorest (e.g.) thrown by the azure api management import. Also tried a lot of other validators, and all of them seem to consider some specs as valid where apim would reject with schema validation error.
autorest
autorest --v3 --azure-validator --input-file=openapi.json
azure portal import
This is very important for CI workflows to use the validation as PR gate before accepting merges.