-
Notifications
You must be signed in to change notification settings - Fork 3
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
Make nullable fields non-required in creation endpoints #240
Comments
Discussed this with @danielmursa-dev . To clarify: the issue here specifically refers to creation endpoints. This in contrast to
The default DRF behavior seems to be 2. Personally, I think this is not correct behavior: But that's a discussion for another day: for now, we agreed to keep the existing behavior (2) and only default to |
Thema / Theme
Klantinteracties API
Omschrijving / Description
The request here is to make all nullable fields in resource creation endpoints non-required.
Whenever fields are marked both as
required
and as{type} or null
in creation endpoints, the field has to be explicitly included in the payload and set tonull
. If the field is omitted, a validation error is given.For example,
voorkeursDigitaalAdres
inpartijenCreate
is defined in this way (required
, but also acceptsnull
in lieu of anobject
):Omitting the field from a create payload yields:
Which is fixed by adding:
If a field is nullable, then
null
is a sane default value that the API can set for the client, without having to explicate the fields in the payload.Toegevoegde waarde / Added value
The current behavior is undesirable because it makes constructing requests very verbose and generally raises the friction of building a valid request. This is especially visible in tests, where the current approach leads to the need for a lot of factories and fixtures. I would say providing sane defaults wherever possible makes for a better developer experience.
Aanvullende opmerkingen / Additional context
No response
The text was updated successfully, but these errors were encountered: