Closed hug-dev closed 3 years ago
but now I have questions - how does the client know the service didn't see that field, if capability discovery isn't a thing?
On the request itself it won't be able to (no error is returned). Depending on the contract, it can:
ListKeys
, if we are talking about a new field inside the KeyAttributes structureSomeone adding an optional field to an operation would have to keep that in mind, that the field might be ignored by the service. Depending on the field's nature, that might not be wanted in which case creating a new contract would be better.
check after the request with ListKeys, if we are talking about a new field inside the KeyAttributes structure
While I sort of understand this approach, it suddenly places the burden on clients to know which parameters might be discarded silently by the service... I get that there's no way to allow for non-breaking changes to be introduced otherwise, but it seems like such a horrible UX from the client's perspective: "Oh, so if I set this particular flag I then have to always check that the service actually cared about it, whereas with all these other flags I don't."
I think it should be clear in the documentation of the optional fields that this behaviour is possible... Agree this is not the best.
Adds some words about allowing non-breaking changes under certain constraints.
In relation with https://github.com/parallaxsecond/parsec/issues/388