NuxtNotion 使用指南
了解如何使用 Notion API 构建现代化的博客系统,从基础概念到高级功能的完整指南
Notion API 概述
Notion 的 REST API 为开发者提供了与 Notion 工作区直接交互的能力。通过 API,您可以构建强大的集成应用,实现数据同步、内容管理和工作流自动化。
核心功能包括:
- •页面管理:创建、更新和检索页面内容
- •数据库操作:管理数据库、属性、条目和架构
- •用户管理:访问用户配置文件和权限
- •评论系统:处理页面和内联评论
- •内容搜索:在工作区内容中进行搜索
- •身份验证:使用 OAuth 2.0 保护集成安全
快速开始
1. 创建 Notion 集成
首先,您需要在 Notion 开发者平台创建一个集成应用,获取 API 密钥。
2. 安装依赖
npm install @notionhq/client 3. 基础配置
import { Client } from '@notionhq/client'
const notion = new Client({
auth: process.env.NOTION_TOKEN,
})集成类型
内部集成
- • 仅限单个工作区使用
- • 适用于自定义工作流和自动化
- • 工作区成员显式授权访问
- • 无需 OAuth 流程
公共集成
- • 可在多个工作区使用
- • 适用于广泛的用例
- • 使用 OAuth 2.0 协议
- • 需要 Notion 安全审查
核心功能
页面管理
创建、读取、更新页面内容和属性
数据库操作
查询、过滤、排序数据库记录
内容搜索
在工作区中搜索页面和数据库
NuxtNotion 项目结构
NuxtNotion/
├── components/ # Vue 组件
│ ├── AppNavbar.vue # 导航栏组件
│ ├── BlogPostCard.vue # 博客卡片组件
│ └── NotionContent.vue # Notion 内容渲染
├── pages/ # 页面路由
│ ├── index.vue # 首页
│ ├── articles.vue # 文章列表
│ ├── guide.vue # 指南页面
│ └── post/[id].vue # 文章详情
├── server/ # 服务端 API
│ ├── api/
│ │ ├── posts.js # 文章 API
│ │ └── posts/latest.js # 最新文章 API
│ └── plugins/
│ └── notion.js # Notion 客户端配置
├── composables/ # 组合式函数
│ └── useNotionData.js # Notion 数据处理
└── nuxt.config.js # Nuxt 配置文件API 使用示例
1. 查询数据库
// server/api/posts.js
const response = await notion.databases.query({
database_id: process.env.NOTION_DATABASE_ID,
sorts: [
{
property: 'Created',
direction: 'descending'
}
],
page_size: 6
})2. 获取页面内容
// 获取页面详情
const page = await notion.pages.retrieve({
page_id: pageId
})
// 获取页面块内容
const blocks = await notion.blocks.children.list({
block_id: pageId
})3. 数据处理
// composables/useNotionData.js
export function extractPlainText(richText) {
return richText?.map(text => text.plain_text).join('') || ''
}
export function formatNotionDate(dateString) {
return new Date(dateString).toLocaleDateString('zh-CN')
}最佳实践
🔒 安全性
- • 将 API 密钥存储在环境变量中
- • 使用服务端 API 路由保护敏感操作
- • 实施适当的错误处理和日志记录
⚡ 性能优化
- • 使用分页减少单次请求的数据量
- • 实施缓存策略减少 API 调用
- • 使用 Nuxt 的 SSR 功能提升首屏加载速度
🎨 用户体验
- • 提供加载状态和错误处理
- • 实现响应式设计适配各种设备
- • 使用渐进式加载提升用户体验