feat(api): 공용 카테고리 API 추가 (대분류+소분류 함께 반환)
docs(todo): 헤더 네비 작업 3번(데이터 연동 설계) 완료 표시
This commit is contained in:
@@ -8,8 +8,8 @@
|
|||||||
- [x] 헤더 컨테이너/레이아웃 골격 생성(`src/app/components/AppHeader.tsx` 확장)
|
- [x] 헤더 컨테이너/레이아웃 골격 생성(`src/app/components/AppHeader.tsx` 확장)
|
||||||
|
|
||||||
3) 데이터 연동 설계
|
3) 데이터 연동 설계
|
||||||
- [ ] 대분류 소스 결정: `GET /api/boards?category=...` 또는 카테고리 전용 API 사용
|
- [x] 대분류 소스 결정: `GET /api/categories` 사용(대분류+소분류 동시 제공)
|
||||||
- [ ] 소분류(보드) 매핑 규칙 정의(현재 시드 트리 기준)
|
- [x] 소분류(보드) 매핑 규칙 정의(현재 시드 트리 기준)
|
||||||
|
|
||||||
4) 대분류 네비 구현
|
4) 대분류 네비 구현
|
||||||
- [ ] 상단에 대분류 탭 렌더링(정렬/활성 상태 반영)
|
- [ ] 상단에 대분류 탭 렌더링(정렬/활성 상태 반영)
|
||||||
|
|||||||
18
src/app/api/categories/route.ts
Normal file
18
src/app/api/categories/route.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import { NextResponse } from "next/server";
|
||||||
|
import prisma from "@/lib/prisma";
|
||||||
|
|
||||||
|
// 대분류(BoardCategory)와 소분류(Board)를 함께 반환
|
||||||
|
export async function GET() {
|
||||||
|
const categories = await prisma.boardCategory.findMany({
|
||||||
|
orderBy: [{ sortOrder: "asc" }, { createdAt: "asc" }],
|
||||||
|
include: {
|
||||||
|
boards: {
|
||||||
|
orderBy: [{ sortOrder: "asc" }, { createdAt: "asc" }],
|
||||||
|
select: { id: true, name: true, slug: true, requiresApproval: true, type: true },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
return NextResponse.json({ categories });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user