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

bravado-core does propagate x-nullable field in case of reference objects #335

Open
macisamuele opened this issue May 23, 2019 · 0 comments

Comments

@macisamuele
Copy link
Collaborator

While working on #331 I've noticed that bravado-core has some custom logic to ensure that the x-nullable field is propagated in case of a reference object.

According to the JSON schema definition a reference object is meant to fully replace the current object with the referenced one. This means that siblings attributes of a reference objects can not be considered (the definition does not strictly define this behaviour, so the decision is delegated to the implementer).

I'm mentioning this as ensuring the propagation of x-nullable results in

  • additional custom code to handle in the library
  • possible lack of feature parity between usage of bravado_core.spec.Spec with internally_dereference_refs set to True or False
  • possible confusion on the users as certain vendor extension will be propagated and others not (ie. a schema like {'x-nullable': True, '$ref': '#/definitions/something', 'x-new': False} will have x-nullable propagated and x-new ignored)

My suggestion would be to remove this manual handling and to bump swagger-spec-validator to 2.4.0+ which adds a warning in case a sibling is identified into a reference object (Yelp/swagger_spec_validator#107)

⚠️ : this might break clients, so addressing this issue needs a major release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant