Skip to content

Treat new PUT request properties as compatible #537

Closed
@westse

Description

@westse

Currently new PUT request properties are treated as incompatible. This is due to #136 (with PR #137) which appear invalid in intent, implementation, and test.

  • Invalid in intent: Invalid backward compatibility result for new read-only property in PUT operations #136 claims that adding a readOnly property to the request body of a PUT request is a breaking change because clients will begin to omit it and the server will interpret the omission as a directive to delete the property. This is incorrect because the server should expect, per the OAS spec, that readOnly properties "SHOULD NOT be sent as part of the request". So it would be a bug for the server to delete any data associated with the readOnly property. Regardless, the API is left unbroken if the server simply ignores readOnly properties.
  • Invalid in implementation: the code treats as incompatible any new PUT request property, not just readOnly properties.
  • Invalid in test: no readOnly properties are tested.

In theory one could argue that some servers might enforce the "SHOULD NOT" language of the spec by returning validation errors where they didn't before, and this would constitute an API breakage. But that should be discussed in a different issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions