Phase 5: Public read API for resources
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- api, backend, databases, documentation
Direzione di ricerca
Start by reading src/lib/resources.ts and src/lib/directory-filters.ts, then inspect the PRD §8.13 requirements. Use src/app/api/resources/route.ts, src/lib/api-validation.ts, and the middleware entry point as the implementation map; resolve the rate-limiting approach and database-level filter behavior. Done means the documented endpoint supports the listed filters, pagination, caching, rate limiting, and response format.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Implement public read API as specified in PRD §8.13. This is a P2 requirement for Phase 5.
Acceptance Criteria (from PRD §8.13)
-
GET /api/resources(paginated, filterable by category/tag) for campus ambassador bots/Discord integrations - Rate-limited, no auth required for reads
Current State
- No public API exists
- All data fetching is done via Server Components
- Resources are fetched via
src/lib/resources.tsfunctions
Implementation Plan
- Create API route:
src/app/api/resources/route.ts - Implement query parameters:
page/limit(pagination)category(filter by category slug)tag(filter by tag)region(IN / Global)costType(free, discount, etc.)status(active only by default)search(optional fuzzy search - may be heavy, consider exact match)
- Add rate limiting:
- Use Vercel Edge Middleware or Upstash Redis
- Limit: 60 requests/minute per IP
- Response format:
{ "data": [...], "pagination": { "page": 1, "limit": 30, "total": 593, "totalPages": 20 }, "filters": { "category": "development-tools", ... } } - Documentation: Add API docs to README or separate docs file
Files to Create
src/app/api/resources/route.ts(new)src/lib/api-validation.ts(new) - Zod schemas for query paramssrc/middleware.tsor Edge Function - rate limiting (or use Upstash)
Rate Limiting Options
- Option A: Upstash Redis (recommended for serverless)
npm install @upstash/ratelimit @upstash/redis- Edge-compatible
- Option B: Vercel Edge Middleware with in-memory (not persistent across invocations)
- Option C: Custom middleware with KV store
Query Implementation
Reuse existing applyFilters logic from src/lib/directory-filters.ts but on the database level (SQL WHERE clauses) for performance.
Caching
- Add
Cache-Control: public, s-maxage=60, stale-while-revalidate=300 - Resources don't change frequently (admin CRUD + weekly cron)
OpenAPI/Swagger
- Consider adding OpenAPI spec for documentation
- Could use
@asteasolutions/zod-to-openapifor auto-generation
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 6
- Merge medio
- 11h 39m
- PR unite (30g)
- 16
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Your-Voldemort/StudentStack
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
Your-Voldemort/StudentStack#42 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Your-Voldemort/StudentStack#41 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Your-Voldemort/StudentStack#40 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
Your-Voldemort/StudentStack#38 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Your-Voldemort/StudentStack#37 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Your-Voldemort/StudentStack
Issue simili
-
area:deploy task
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
wilanis/wilanis-js#1017 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
modelcontextprotocol/servers#5133 ·
I maintainer di solito rispondono entro 1 giorno
-
budget bug feature frontend good-issue medium needs-review OSCI'26 payments
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
SatyamPandey-07/WorkSphere#5990 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
lugassawan/swe-workbench#799 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue javascript
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
yukikotani231/sqlsift#326 ·
I maintainer di solito rispondono entro 1 giorno