How iscarvalho/recipes-api works
Recipes API is a NestJS REST service for browsing recipes, with optional category filtering and single-recipe lookup. The principal flow validates requests, routes them through the recipes controller and service, and queries the Supabase-backed Postgres store; the database migrations define the recipe schema and privileges. Swagger exposes API documentation. The sampled source confirms these calls and the Supabase client setup; unsampled module details are represented only where supported by the README or file tree.
Main entry points: main.ts App bootstrap · recipes.controller.ts Recipes controller · recipes.service.ts Recipes service · supabase.service.ts Supabase client
Components 11
API surface
- App bootstrap
src/main.ts - Recipes controller
src/recipes/recipes.controller.ts - Swagger docs
src/main.ts
Recipe domain
- List filter DTO
src/recipes/dto/list-recipes.dto.ts - Recipes service
src/recipes/recipes.service.ts - Recipe model
src/recipes/entities/recipe.entity.ts
Persistence
- Supabase client
src/supabase/supabase.service.ts - App configuration
src/app.module.ts - Recipes database
supabase/migrations/20260915120000_create_recipes.sql - DB privileges
supabase/migrations/20260915140000_grant_recipes_privileges.sql
Other components
- API client
Connections 12
- API client → App bootstrap: sends request
- App bootstrap → Recipes controller: routes request
- App bootstrap → List filter DTO: validates query
- Recipes controller → Recipes service: calls lookup
- Recipes controller → List filter DTO: accepts filter
- Recipes controller → Recipe model: returns recipes
- Recipes service → Supabase client: gets client
- Recipes service → Recipes database: queries recipes
- Supabase client → App configuration: reads settings
- Recipes database → DB privileges: grants access
- App bootstrap → Swagger docs: serves docs
- API client → Swagger docs: views docs