0718aec93b
This PR updates the `cms-contentful` example to use: - App Router - TypeScript - Draft Mode (previously Preview Mode) - ISR / Data Cache (revalidations through `revalidateTag`) Further, it combines many separate files into more manageable single files, and tries to better bucket provider-specific logic into the `lib/` folder. I'm hoping this can be the foundation for re-writing the rest of the `cms-*` examples to use App Router. Overall, the code is much easier to reason about IMO. Pretty happy with the change. I sprinkled some `any`'s throughout here, but if someone wants to make it better, go for it! https://app-router-contentful.vercel.app/
15 lines
502 B
TypeScript
15 lines
502 B
TypeScript
import { NextRequest, NextResponse } from 'next/server'
|
|
import { revalidateTag } from 'next/cache'
|
|
|
|
export async function POST(request: NextRequest) {
|
|
const requestHeaders = new Headers(request.headers)
|
|
const secret = requestHeaders.get('x-vercel-reval-key')
|
|
|
|
if (secret !== process.env.CONTENTFUL_REVALIDATE_SECRET) {
|
|
return NextResponse.json({ message: 'Invalid secret' }, { status: 401 })
|
|
}
|
|
|
|
revalidateTag('posts')
|
|
|
|
return NextResponse.json({ revalidated: true, now: Date.now() })
|
|
}
|