-
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
Udefinerte felter i response istedenfor tomme lister eller tomme verdier #1355
Comments
I dag purger vi alle felter som er null eller tomme fra responsen uavhengig av om de er nullable i responsmodellen eller ikke. Det ble gjort i sin tid for å lette trafikken, men kan definitivt skape forvirring og gjøre terskelen for å bruke DP høyere. Foreslår å kun fjerne felter fra responsen dersom feltet på responsmodellen er nullable. |
Enig, vi fjerner |
Jeg tenkte å modifisere IgnoreEmptyCollection filteret til å kun gjelde nullable retur typer, slik at vi har funksjonaliteten dersom vi velger å uttrykke at noen av listene skal være nullable i returmodellene. Men du vil heller fjerne hele filteret @elsand? 🙂 |
Hm, hvis vi gjør om en |
Etter en diskusjon med @elsand og @oskogstad lander vi på å gjøre alle lister nullable i swagger output. Rasjonale er oppsummert her:
|
Jeg tror at dersom dere vil spare på bytes som sendes over kabelen er det andre ting en å ta vekk felter som gir mer effekt - f.eks. mulighet for å definere et felt for idempotency, for å redusere antall GETs man må gjøre for å forhindre dobbeltkall. Punktlisten over resonnerer godt i mitt hode - jeg vil allikevel slå et slag for at null og [] skaper ulik forventning hos klienten: Dersom en liste er nullable er både null, [] og [e1,...] mulige svar som klienten må håndtere. En utvikler må dermed alltid dobbeltsjekke hva forskjellen mellom null og [] er, og skrive kode som håndterer de to casene som samme. - Ikke mye, men mange bekker små... |
<!--- Provide a general summary of your changes in the Title above --> ## Description <!--- Describe your changes in detail --> ## Related Issue(s) - #1355 ## Verification - [ ] **Your** code builds clean without any errors or warnings - [ ] Manual testing done (required) - [ ] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Updated API specifications to allow properties to be nullable, enhancing flexibility in handling optional data. - Introduced a method to make array-type properties nullable in OpenAPI document schemas. - **Bug Fixes** - Updated serialization logic to include empty collections during data serialization, affecting the output of serialized data. - **Tests** - Enhanced assertion logic in integration tests to require closer matches for `DateTimeOffset` types. - Modified dialog retrieval tests to no longer exclude missing members in assertions, improving accuracy in test validations. - Refined response handling in dialog search tests for better clarity and accuracy in expectations. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
De skal være nullable i tt02 nå |
Det er en forskjell, men det praktiske effekten er nok den samme. Med unntak av at empty indikerer at det på et tidspunkt er gjort et valg om at listen skal være tom. "null" betyr at den aldri er satt, men om det er for at man ønker "tom" eller om det er mer "don't care" kan ikke tolkes. Test : Basert på Reproduction steget hadde jeg forventet å ikke få noen treff. altså et "items" på en eller annen måte var tom. Dette må granskes nærmere. |
Som bruker av APIet ville jeg foretrukket
Når det ikke er noen treff. |
Description
Ved kall til /serviceowner/dialogs er inneholder returobjektet ikke
items
når ingen dialoger er funnet. Forventningen min er at det er en tom liste da typenPaginatedListOfSearchDialogSO
ikke har spesifisert at verdien er optional. (se https://docs.altinn.studio/dialogporten/reference/entities/dialog/#search-1)Reproduction
GET /serviceowner/dialogs?externalReference=xyz
Expected behavior
Alle felter er satt i objektet slik det er definert i datatypen, enten med tomme lister eller evt null.
The text was updated successfully, but these errors were encountered: