@catchmexz/dynamic-cms-sdk
v1.0.10
Published
Dynamic CDS SDK for Next.js and React applications
Readme
dynamic-cms-sdk
Dynamic CDS SDK for Next.js and React applications - 让前端接入 CDS 变得简单!
🚀 快速开始
安装
npm install dynamic-cms-sdk
# 或
yarn add dynamic-cms-sdk基础配置
// lib/cms.ts
import { CMSClient } from "dynamic-cms-sdk";
export const cms = new CMSClient({
baseURL: "https://your-cms-api.com/functions/v1",
apiKey: "your-api-key",
websiteId: "your-website-id"
});📖 使用方法
1. 获取内容
import { CMSClient } from 'dynamic-cms-sdk';
const cms = new CMSClient({...});
// 获取文章列表
const { data: articles } = await cms.getContent<Article>({
schemaKey: 'article',
status: 'published',
limit: 10,
});2. Next.js 静态生成
// pages/blog/index.tsx
import { GetStaticProps } from 'next';
import { CMSClient } from 'dynamic-cms-sdk';
export const getStaticProps: GetStaticProps = async () => {
const cms = new CMSClient({...});
const { data: articles } = await cms.getContent({
schemaKey: 'article',
status: 'published',
limit: 20,
});
return {
props: { articles },
revalidate: 60,
};
};🔧 API 参考
主要方法
getContent<T>(params)- 获取通用内容列表schemaKey: 内容类型(如 'article', 'product')websiteId: 网站 IDstatus: 内容状态limit: 返回数量offset: 分页偏移search: 搜索关键词
getWebsite()- 获取网站配置updateWebsite(websiteData)- 更新网站配置
📝 TypeScript 支持
SDK 完全使用 TypeScript 编写,提供完整的类型定义:
import { Content, CMSConfig, ContentListParams } from "dynamic-cms-sdk";
const config: CMSConfig = {
baseURL: "https://api.example.com",
apiKey: "your-key",
websiteId: "your-id"
};
const params: ContentListParams = {
schemaKey: "article",
status: "published",
limit: 10
};🌟 特性
- ✅ 零配置 - 开箱即用
- ✅ TypeScript - 完整类型支持
- ✅ 通用内容管理 - 支持任意内容类型
- ✅ 灵活查询 - 动态内容获取
- ✅ 轻量级 - 简单易用
