2025-12-03 11:38:54 +08:00
2025-11-25 16:54:15 +08:00
2025-12-03 11:38:54 +08:00
2025-12-03 11:38:54 +08:00
2025-11-21 16:41:57 +08:00
2025-08-10 19:16:48 +08:00
2025-08-10 19:16:48 +08:00
2025-08-10 19:16:48 +08:00
2025-12-03 11:38:54 +08:00
2025-11-29 11:39:59 +08:00
2025-11-21 16:41:57 +08:00
2025-11-25 16:54:15 +08:00

NocoDB API SDK

一个轻量级的 NocoDB API SDK支持表记录操作和 Base 管理功能。

功能特性

  • 📋 记录操作: 完整的 CRUD 操作支持
  • 🗄️ Base 管理: 创建、列出、更新、删除 Bases
  • 🔗 关联数据: 支持链接字段操作
  • 📊 统计信息: 获取 Base 和记录统计
  • 🎯 类型安全: 完整的 TypeScript 类型定义

快速开始

基本用法

import { NocoApi } from '@kevisual/noco';

const nocoApi = new NocoApi({
  baseURL: 'https://your-nocodb-instance.com',
  token: 'your-api-token',
  table: 'your-table-name' // 可选,用于记录操作
});

// 记录操作
const listResult = await nocoApi.record.list();
await nocoApi.record.update({ Id: 1, Title: '更新的标题' });

Base 管理

// 列出所有 Bases
const bases = await nocoApi.meta.bases.list();
console.log('所有 Bases:', bases.list);

// 创建新的 Base
const newBase = await nocoApi.meta.bases.create({
  title: '我的新项目',
  description: '项目描述',
  color: '#ff6b35'
});

// 获取 Base 信息
const baseInfo = await nocoApi.meta.bases.get('base-id');

// 更新 Base
await nocoApi.meta.bases.update('base-id', {
  title: '更新的项目名',
  description: '更新的描述'
});

// 删除 Base
await nocoApi.meta.bases.delete('base-id');

高级功能

// 复制 Base
const duplicatedBase = await nocoApi.meta.bases.duplicate('base-id', {
  title: '复制的项目',
  description: '这是一个复制的项目'
});

// 获取 Base 统计信息
const stats = await nocoApi.meta.bases.getStats('base-id');

// 导入/导出 Base
await nocoApi.meta.bases.importBase(importData);
const exportData = await nocoApi.meta.bases.export('base-id');

API 参考

NocoApi 构造函数选项

type NocoApiOptions = {
  table?: string;     // 表名(用于记录操作)
  token?: string;     // API 令牌
  baseURL?: string;   // NocoDB 实例 URL
};

Base 操作类型

type BaseInfo = {
  id?: string;
  title: string;
  description?: string;
  config?: Record<string, any>;
  color?: string;
  meta?: Record<string, any>;
  order?: number;
  prefix?: string;
  status?: string;
  type?: string;
  created_at?: string;
  updated_at?: string;
};

type CreateBaseData = {
  title: string;
  description?: string;
  color?: string;
  meta?: Record<string, any>;
  config?: Record<string, any>;
};

记录操作

// 查询参数
type QueryParams = {
  fields?: string | string[];    // 选择字段
  sort?: string | string[];      // 排序
  where?: string;                // 查询条件
  offset?: number;               // 偏移量
  limit?: number;                // 限制数量
  viewId?: string;               // 视图 ID
};

// 列出记录
await nocoApi.record.list<T>(params);

// 创建记录
await nocoApi.record.create(data);

// 读取记录
await nocoApi.record.read(id);

// 更新记录
await nocoApi.record.update(data);

// 删除记录
await nocoApi.record.delete({ Id: id });

// 获取记录数量
await nocoApi.record.count();

链接字段操作

// 列出链接记录
await nocoApi.record.listLinks(linkFieldId, recordId);

// 更新链接
await nocoApi.record.updateLinks(linkFieldId, recordId, data);

// 删除链接
await nocoApi.record.deleteLinks(linkFieldId, recordId);

独立使用 Meta API

import { MetaBases } from '@kevisual/noco';

const metaBases = new MetaBases({
  token: 'your-api-token',
  baseURL: 'https://your-nocodb-instance.com'
});

const bases = await metaBases.list();

错误处理

try {
  const result = await nocoApi.meta.bases.create({
    title: '新项目'
  });
  
  if (result.code === 200) {
    console.log('创建成功:', result.data);
  } else {
    console.error('创建失败:', result.message);
  }
} catch (error) {
  console.error('请求错误:', error);
}

参考资料

Meta API

https://nocodb.com/apis/v2/meta

Data API

https://nocodb.com/apis/v2/data

许可证

MIT

Description
对nocodb-sdk的api进行封装部分功能
Readme 364 KiB
Languages
TypeScript 98.5%
JavaScript 1.5%