Azure / azure-openapi-validator

Azure Open API Validator
MIT License
44 stars 43 forks source link

[PatchBodyParameterSchema] Improve error message from nested properties #708

Open mikeharder opened 3 weeks ago

mikeharder commented 3 weeks ago

If rule PatchBodyParameterSchema fails, the error message only includes the name of the property and the top-level reference that contains the nested property:

PatchBodyParametersSchema Properties of a PATCH request body must not be required, property:type. Location: Microsoft.AVS/stable/2023-09-01/vmware.json#L489 RPC-Patch-V1-10 ❌ PatchBodyParametersSchema Properties of a PATCH request body must not be required, property:name. Location: Microsoft.AVS/stable/2023-09-01/vmware.json#L489 RPC-Patch-V1-10 ❌ PatchBodyParametersSchema Properties of a PATCH request body must not be required, property:name. Location: Microsoft.AVS/stable/2023-09-01/vmware.json#L1609 RPC-Patch-V1-10

https://github.com/Azure/azure-rest-api-specs/pull/28023/checks?check_run_id=22174134612

This can be very difficult to debug, especially if the property is nested multiple levels or is under common-types which spec authors asssume are 100% correct.

Can the rule be improved to show the original source location of the violation? Or a "call stack" of $refs?

I'm unsure if this behavior is specific to PatchBodyParameterSchema, or applies to many (or all) rules.