31 lines
869 B
Markdown
31 lines
869 B
Markdown
# Story 1.1: Course Catalog Read API
|
|
|
|
key: 1-1-course-catalog-read-api
|
|
status: drafted
|
|
phase: backend-planning
|
|
note: Non-implementasi — hanya dokumentasi & kontrak API.
|
|
|
|
## Ringkasan
|
|
Endpoint read-only untuk daftar kursus dengan paging dan filter dasar.
|
|
|
|
## Scope Backend
|
|
- Read list: fields minimum (id, title, category, level, updatedAt)
|
|
- Query params: `page`, `pageSize`, `q`, `category`, `level`
|
|
- Sorting: `sortBy=updatedAt|title`, `order=asc|desc`
|
|
|
|
## Acceptance Gate
|
|
- Kontrak API disetujui PM/SM/Architect
|
|
- Data privacy & rate-limiting disepakati
|
|
- Tidak ada coding hingga gate “solutioning” terpenuhi
|
|
|
|
## Kontrak (Outline)
|
|
- Route: GET /api/courses
|
|
- Response: 200
|
|
```
|
|
{
|
|
"page": 1,
|
|
"pageSize": 20,
|
|
"total": 120,
|
|
"items": [{"id":"c1","title":"Basic Knife Skills","category":"kitchen","level":"beginner","updatedAt":"2025-10-01T12:00:00Z"}]
|
|
}
|
|
``` |