BE: Gruppen-Endpunkte um ?include=members erweitern #169
Labels
No labels
component/backend
component/docs
component/e2e
component/frontend
component/infra
component/keycloak
prio/high
prio/low
prio/medium
type/bug
type/chore
type/feature
type/refactor
type/test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
WompSchmiede/FamilienFeierPlaner#169
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschreibung
GET /api/v1/groupsundGET /api/v1/groups/{group_id}um einen?include=members-Query-Parameter erweitern, der Gruppen-Mitglieder inkl. Personendaten (firstName, lastName) direkt im Response einbettet.Motivation / Anwendungsfall
Das Frontend macht aktuell fuer jede Gruppen-Ansicht 1 + N API-Calls (alle Gruppen, dann pro Gruppe
/members). Das skaliert schlecht mit wachsender Gruppenanzahl. Ein?include=memberseliminiert das N+1-Problem vollstaendig.Vorgeschlagene Umsetzung
OpenAPI (openapi.yaml):
include(string, enum:members) anGET /api/v1/groupsundGET /api/v1/groups/{group_id}GroupWithMembers(allOf: Group + members-Array)GroupMemberWithPerson-Schema mitpersonId,firstName,lastName,joinedAt,invitedBy,approvedByBackend (Fastify-Route groups.ts):
querystring-Schema umincludeergaenzeninclude: { members: { include: { person: { select: { personId, firstName, lastName } } } } }in der Prisma-Query?fields=-Pattern)Response-Beispiel:
Alternativen
GET /api/v1/groups/members-summary— weniger flexibelLabels
component/backend, prio/high, type/feature
Meilenstein
MS-REST (#32)