| 12345678910111213141516171819202122232425 |
- import { NextRequest, NextResponse } from 'next/server';
- import { revalidateTag } from 'next/cache';
- // 캐시 태그 수동 무효화 — Admin/운영에서 config·market·stock 데이터 변경 후 즉시 반영용.
- // 사용: POST /api/revalidate?tag=site-config&secret=XXX (secret = 환경변수 REVALIDATE_SECRET)
- // 태그: 'site-config'(설정/메뉴) · 'market-data'(시장 T+1) · 'stock-data'(종목 T+1)
- // REVALIDATE_SECRET 미설정 시 항상 401 (안전 기본값) — 설정 전엔 revalidate 주기(초)로만 갱신.
- export async function POST(request: NextRequest)
- {
- const secret = request.nextUrl.searchParams.get('secret');
- if (!process.env.REVALIDATE_SECRET || secret !== process.env.REVALIDATE_SECRET) {
- return NextResponse.json({ success: false, message: 'unauthorized' }, { status: 401 });
- }
- const tag = request.nextUrl.searchParams.get('tag');
- if (!tag) {
- return NextResponse.json({ success: false, message: 'tag required' }, { status: 400 });
- }
- revalidateTag(tag);
- return NextResponse.json({ success: true, tag });
- }
|