-
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
Enums mit unbekannten Werten behandeln #12
Comments
Was muss der Konsument aktuell tun, um mit unbekannten Werten klar zu kommen? Eigentlich nur READ_UNKNOWN_ENUM_VALUES_AS_NULL im ObjectMapper setzen, korrekt? Wenn wir String verwenden würden, verlieren wir an der Stelle die Dokumentation der gültigen Ausprägungen. Alternativ würden wir wohl die description erweitern oder examples verwenden. |
Wenn unsere Partner alle Java und Jackson verwenden, dann ja. Andere Sprachen und ObjectMapper sollten jedoch auch berücksichtigt werden. Wir können keine Annahme darüber treffen mit welcher Technologie unsere Partner diese Schnittstelle anbinden.
Die Enum könnte als eigener Typ definiert werden und bei der Beschreibung des Properties darauf verwiesen werden. Falls unsere Partner aus der Swagger Beschreibung den Code generieren, haben sie sofort die bekannten Enum Werte und müssen diese nicht aus der Doku abtippen.
Wenn die sich so selten ändern, ist doch auch ein Breaking Change der API ok. Sollte dann nur alle paar Jahre mal auftreten und wir müssten eine Zeit lang 2 verschiedene API Versionen unterstützen. |
ich bin zwispältig zum Einen finde ich enums gut, da dann automatisch der Wertebereich klar ist und man als Client/Reader durch entsprechende Code-Generierung unterstützt wird. zum Anderen beschränken wir uns bei der Weiterentwicklung der API - falls wir neue ENUM-Ausprägungen hinzufügen wollen, dann wäre das ein Breaking-Change und den würden wir verrmutlich vermeiden wollen, da es soviel Aufwand macht (alle Clients müssen umgestellt sein, bevor wir das neue ENUM wirklich mitsenden dürfen) Einen Lösungsansatz liefert Martin Fowler mit dem TolerantReader-Pattern |
ist das nicht häufig der Fall? Wenn ich mir z.B. Anrede anschaue und mir als implentierender Entwickler die Readme durchgelesen habe muss ich entscheiden, wie ich unbkeannte Werte behandle. Mit |
Meine Gedanken, wenn ich diese Schnittstelle bereitstellen soll um bei Europace eingebunden zu werden:
|
Warum wird die API nicht gleich ohne Einschränkung von Wertebereichen definiert und statt ´enum´ einach nur
String
verwendet? Dies ist auf Konsumentenseite wesentlich einfacher zu handhaben, da man nicht darauf angewiesen ist, dass ein verwendete Object Mapper unbekannte Enums sauber ignorieren kann.The text was updated successfully, but these errors were encountered: