[Improvement] Rezeptliste ohne Paginierung und mit dreifacher Unterabfrage #52

Open
opened 2026-09-09 20:17:02 +00:00 by Aceless · 1 comment
Owner

Problem

GET /api/spaces/{spaceId}/recipes liefert immer alle Rezepte eines Space inklusive aller Tags, Mealtypes und Bilder. Es gibt weder Limit noch Offset, weder Filter noch Sortierparameter.

Zusaetzlich wiederholt RecipeRepository.GetRecipesInSpace dreimal dieselbe Unterabfrage:

WHERE recipe_id IN (SELECT id FROM recipe WHERE space_id = @SpaceId)

Fix

  • ?page=&pageSize= mit sinnvoller Obergrenze, Antwort als Seitenobjekt mit Gesamtanzahl.
  • Optionale Filter auf Tags, Mealtype und Suchbegriff. Dtos/SearchDtos.cs ist bereits vorhanden, wird aber von keinem Endpunkt benutzt.
  • Die Unterabfragen durch einen JOIN auf recipe ersetzen.
## Problem `GET /api/spaces/{spaceId}/recipes` liefert immer alle Rezepte eines Space inklusive aller Tags, Mealtypes und Bilder. Es gibt weder Limit noch Offset, weder Filter noch Sortierparameter. Zusaetzlich wiederholt `RecipeRepository.GetRecipesInSpace` dreimal dieselbe Unterabfrage: ```sql WHERE recipe_id IN (SELECT id FROM recipe WHERE space_id = @SpaceId) ``` ## Fix - `?page=&pageSize=` mit sinnvoller Obergrenze, Antwort als Seitenobjekt mit Gesamtanzahl. - Optionale Filter auf Tags, Mealtype und Suchbegriff. `Dtos/SearchDtos.cs` ist bereits vorhanden, wird aber von keinem Endpunkt benutzt. - Die Unterabfragen durch einen JOIN auf `recipe` ersetzen.
Author
Owner

Teilweise erledigt.

Geändert: Die dreifach wiederholte Unterabfrage in GetRecipesInSpace ist durch Joins auf recipe ersetzt.

Offen: Paginierung, Filter und Suche. Dtos/SearchDtos.cs gehört weiterhin zu keinem Endpunkt. Das ist eine Erweiterung und keine Fehlerbehebung, deshalb bewusst nicht in diesem Schritt.


Branch backend/issue-fixes, Commits 3957404.

Teilweise erledigt. **Geändert:** Die dreifach wiederholte Unterabfrage in `GetRecipesInSpace` ist durch Joins auf `recipe` ersetzt. **Offen:** Paginierung, Filter und Suche. `Dtos/SearchDtos.cs` gehört weiterhin zu keinem Endpunkt. Das ist eine Erweiterung und keine Fehlerbehebung, deshalb bewusst nicht in diesem Schritt. --- Branch `backend/issue-fixes`, Commits 3957404.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Aceless/RecipePlanner#52
No description provided.