swagger-js icon indicating copy to clipboard operation
swagger-js copied to clipboard

Why does $ref automatically resolve on extensions?

Open shockey opened this issue 7 years ago • 1 comments

From @rwrife on September 14, 2018 18:2

I've noticed that the Swagger UI is trying to resolve $refs on extensions, and in my case failing, even though it can't use the data in the extension, thus resulting in a meaningless error to the end-user. Ideally I think it would, more or less, ignore anything defined in the extensions. For example on an operation I have:

"x-ms-examples": { "Test Examples": { "$ref": "./examples/myExamples.json" } }

The UI can't do anything with x-ms-examples, so why attempt to resolve the ref (which it can't resolve in my specific case)?

Copied from original issue: swagger-api/swagger-ui#4880

shockey avatar Sep 15 '18 04:09 shockey

Hi @rwrife, Swagger Client (which handles resolution for Swagger UI) operates on a blacklist of things to not resolve, and doesn't currently ignore vendor extension fields.

It's not as easy as ignoring anything under a key that matches ^x-, though: for example, consider header names like x-rate-limit.

I'm going to move this over to Swagger Client as a bug now 😄

shockey avatar Sep 15 '18 04:09 shockey