提供内部 API 作为统一内容入口
之前已经把内容加载链路打通了:SSG 阶段只渲染一部分 MDX 作为预览内容,当用户登录后,再去拿完整内容。
实现思路
这里不能让客户端直接访问 GitHub API,因为可能暴露 token,且可能触发限制。
所以更合理的做法是提供一个内部 API,作为客户端加载完整内容的统一入口。这一层实现:
- 校验用户登录态
- 调用共享内容服务获取完整 MDX
- 返回给客户端渲染
实现方式
我们在 Next.js 里直接用 Route Handler 做这一层,比如:/api/content/courses/[courseSlug]/lessons/[lessonSlug]