-
Notifications
You must be signed in to change notification settings - Fork 1
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
Extended forward-compatibility in client #53
Comments
I understand the premise of this request however I have a few issues with it:
Ad 1. technically any contract type could have a default created (since all of them are in the end created using Ad 3. afaik Personally Ad 1. hurts me the most, I don't like partial solutions, I understand this is an idealistic and non-realistic approach, but it would be nice if we can solve this problem more universally |
Indeed it will be, but for some features "playing safe" is better than being fully correct.
This I agree with. The contracts should stay clean.
It should not hide the problem - it only should make the app more resilient (meaning - the app should notify developers that something bad happened, but should try to provide functionality either way).
I don't think that is possible. This issue mostly reflects a real-world situation - someone made a mistake and deployed new app to production. We don't want users to notice this. |
Now, the client ignores new fields (which is good!) but we might add another rule: if the field gets removed (i.e. it is not in the payload), try to assign default value if it is primitive type. Removing field would still be a breaking change, but client will be less prone to them and will not throw on deserialization.
The text was updated successfully, but these errors were encountered: