Ungelöst PATCH /api/groups/{groupdId}/members/{personId}
-
Ich habe über die Rest-API
PUT /api/groups/{groupdId}/members/{personId}
erfolgreich verwendet. Jedoch bekam ich dann eine E-Mail in der stand, dass dieser Request deprecated sei. In der API-Doku liest man nichts davon. Wie dem auch sei, habe ich die EmpfehlungPATCH /api/groups/{groupdId}/members/{personId}
stattdessen probiert. Dort erhalte ich aberError: 404 - {"message":"DoctrineGroupMember [gid, pid] not found.","translatedMessage":"Objekt DoctrineGroupMember[gid, pid] wurde nicht gefunden.","messageKey":"error.notfound","args":{"model":"DoctrineGroupMember","id":"gid, pid"},"errors":[]}
Dabei steht in der Nachricht gid für die übermittelte
groupdId
und pid für die übermitteltepersonId
.Was mache ich falsch?
-
@JJB PUT sollte nur zum Anlegen genutzt werden, PATCH zum Updaten. Vermutlich hast du PATCH zum anlegen verwendet.
-
@jziegeler Vielen Dank für die Info. Tatsächlich wollte ich PUT auch nur zum Anlegen verwenden. Ausversehen hatte ich bestimmten Code noch einmal nach dem Anlegen ausgeführt. Das war also das Problem, nicht das initiale Anlegen.
Wie kommt es dann, dass
PUT /finance/transactions/{id}
zum Update gedacht ist? Wäre hier nicht auch PATCH angebrachter? Das gibt es aber laut Doku nicht. -
@JJB PUT ist generell schon auch zum Update gedacht, muss halt aber immer das gesamte Objekt mitschicken. Bei den membern gibt es ein bisschen Logik um das eintrittsdatum herum, die das in diesem Fall erschwert, insofern war es hier sinnvoller für uns nur mit dem PATCH für ein Update zu arbeiten
-
J jziegeler has marked this topic as solved
-
@jziegeler Ich habe noch eine Rückfrage zu
PUT /finance/transactions/{id}
. Was ist denn hier best practice, wenn man nur ein Feld aktualisieren möchte?Ich dachte, es sei sinnvoll, erst einmal alle Felder über get zu holen, in dem Ergebnis das eine Feld anzupassen und dann über put wieder alles zurück. Das Problem dabei, ich schicke dann auch einiges zurück, was eigentlich gar nicht explizit geändert werden kann, zum Beispiel Metadaten:
'meta': {'createdDate': '2025-09-07T06:19:54Z', 'createdPerson': {'id': 1}, 'modifiedDate': '2025-09-07T06:19:54Z', 'modifiedPerson': {'id': 1}}, 'permissions': {'canEdit': True}, '0': {'@deprecated': {'donatorId': 'donator', 'donatorSpouseId': 'donatorSpouse'}}}
Darüber hinaus bekommt man bei dem Verfahren manchmal eine Fehlermeldung zu lesen:
Error: 400 - {"message":"There are validation errors","messageKey":"validation.error","translatedMessage":"Die eingegebenen Daten waren nicht korrekt.","args":[],"errors":[{"fieldId":"contraAccountId","message":"Das Gegenkonto ist kein Spendenkonto.","messageKey":"validation.constraint.donation.no.donation.account","args":[]}]}
Dabei habe ich das hier rausgeschickt (genau so habe ich es ja auch bekommen):
'donatorId': None, 'donator': None, 'donatorSpouseId': None, 'donatorSpouse': None
Wie gestaltet man also sinnvoll ein Update eines Transaktionsfeldes?
-
J JJB has marked this topic as unsolved