155

Meme transcription: Panel 1. Two images of JSON, one is the empty object, one is an object in which the key name maps to the value null. Caption: “Corporate needs you to find the difference between this picture and this picture”

Panel 2. The Java backend dev answers, “They’re the same picture.”

you are viewing a single comment's thread
view the rest of the comments
[-] PeriodicallyPedantic@lemmy.ca 3 points 4 months ago

Imagine you're writing a CRUD API, which is pretty common.
If null attributes aren't included in the payload, and someone does an update (typically a PATCH), how do you know which fields should be nulled out and which should be ignored?

I agree for many cases the two are semantically equivalent, but it's common enough to not have them be equivalent that I'm surprised that it causes arguments

[-] kakes@sh.itjust.works 1 points 4 months ago* (last edited 4 months ago)

For an API there should always be a version parameter/endpoint, imho.

Edit for further context: Ideally, a parameter.

[-] PeriodicallyPedantic@lemmy.ca 2 points 4 months ago* (last edited 4 months ago)

I wasn't taking about new fields. I was talking about resource partial updates (eg PATCH, or commonly the U in CRUD).

If you just want to update a single field on a resource with 100 fields, rather than GETting the entire resource, updating the single field, and PUTting whole thing back, just do a PATCH with the single field.

Likewise if you're POSTing a resource that has nullable fields, but the default value isn't null, how do you indicate that you want the default value for a given field? Do you have to first query some metadata API? That doesn't seem ideal, when this existing pattern exists

[-] kakes@sh.itjust.works 3 points 4 months ago* (last edited 4 months ago)

Those are two very fair points - I agree.

this post was submitted on 30 Jun 2024
155 points (93.3% liked)

Programmer Humor

32461 readers
449 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS