RaisFastRaisFast
JavaScript SDK

管理 API

23 个管理子模块,用于构建管理后台 — 内容类型、用户、插件、RBAC、租户等。

client.admin 命名空间提供完整的管理端点访问。需要管理员认证。

概览

client.admin.contentTypes   // 内容类型 Schema CRUD
client.admin.users          // 用户管理
client.admin.posts          // 文章管理
client.admin.pages          // 页面管理
client.admin.comments       // 评论审核
client.admin.categories     // 分类管理
client.admin.tags           // 标签管理
client.admin.media          // 媒体管理
client.admin.reusableBlocks // 可复用内容块
client.admin.plugins        // 插件管理
client.admin.tenants        // 多租户管理
client.admin.rbac           // 角色与权限
client.admin.options        // 系统选项
client.admin.webhooks       // Webhook 管理
client.admin.audit          // 审计日志
client.admin.crons          // 定时任务管理
client.admin.tokens         // API Token 管理
client.admin.workflows      // 工作流引擎
client.admin.wallets        // 钱包管理
client.admin.currencies     // 货币管理
client.admin.orders         // 订单管理
client.admin.payment        // 支付渠道管理
client.admin.products       // 商品管理
client.admin.stats          // 仪表盘统计

内容类型

// 列出所有 Schema
const schemas = await client.admin.contentTypes.list();

// 获取 Schema
const schema = await client.admin.contentTypes.get("portfolio");

// 创建 Schema
const created = await client.admin.contentTypes.create({
  name: "Portfolio",
  singular: "portfolio",
  plural: "portfolios",
  table: "portfolios",
  fields: [...],
  protocols: ["timestampable"],
});

// 更新 Schema
await client.admin.contentTypes.update("portfolio", { fields: [...] });

// 删除 Schema(保留数据库表)
await client.admin.contentTypes.delete("portfolio");

用户

client.admin.users.list(page?, pageSize?)
client.admin.users.get(id)
client.admin.users.update(id, data)
client.admin.users.delete(id)
client.admin.users.batch({ action: "suspend", ids: [...] })

文章

client.admin.posts.list(query?)
client.admin.posts.get(slug)
client.admin.posts.create(body)
client.admin.posts.update(id, body)
client.admin.posts.delete(id)
client.admin.posts.batch({ action: "publish", ids: [...] })

页面

client.admin.pages.list(query?)
client.admin.pages.get(id)
client.admin.pages.create(body)
client.admin.pages.update(id, body)
client.admin.pages.updateStatus(id, status)
client.admin.pages.delete(id)
client.admin.pages.reorder([{ id, sort_order }, ...])
client.admin.pages.batch({ action, ids })

评论

client.admin.comments.list(query?)
client.admin.comments.updateStatus(id, status)
client.admin.comments.delete(id)
client.admin.comments.batch({ action: "approve", ids: [...] })

分类与标签

// 分类
client.admin.categories.list(page?, pageSize?)
client.admin.categories.create(body)
client.admin.categories.update(id, body)
client.admin.categories.delete(id)
client.admin.categories.batch({ action, ids })

// 标签
client.admin.tags.list(page?, pageSize?)
client.admin.tags.create(body)
client.admin.tags.update(id, body)
client.admin.tags.delete(id)
client.admin.tags.batch({ action, ids })

媒体

client.admin.media.upload(file, options?)
client.admin.media.list(page?, pageSize?)
client.admin.media.delete(id)
client.admin.media.batch({ action: "delete", ids: [...] })

可复用内容块

client.admin.reusableBlocks.list()
client.admin.reusableBlocks.get(id)
client.admin.reusableBlocks.create(body)
client.admin.reusableBlocks.update(id, body)
client.admin.reusableBlocks.delete(id)
client.admin.reusableBlocks.batch({ action, ids })

插件

// 列出所有插件(含健康状态和指标)
const plugins = await client.admin.plugins.list(1, 20);

// 插件详情
const plugin = await client.admin.plugins.get("com.example.crm");

// 生命周期
await client.admin.plugins.enable("com.example.crm");
await client.admin.plugins.disable("com.example.crm");
await client.admin.plugins.reload("com.example.crm");
await client.admin.plugins.unload("com.example.crm");

// 批量操作
await client.admin.plugins.batch({
  action: "enable",
  ids: ["com.example.crm", "com.example.seo"],
});

租户

client.admin.tenants.list(page?, pageSize?)
client.admin.tenants.get(id)
client.admin.tenants.create({ name, slug })
client.admin.tenants.update(id, data)
client.admin.tenants.delete(id)
client.admin.tenants.batch({ action, ids })

RBAC

// 角色
client.admin.rbac.listRoles()
client.admin.rbac.createRole({ name, description? })
client.admin.rbac.updateRole(id, data)
client.admin.rbac.deleteRole(id)
client.admin.rbac.batchRoles({ action, ids })

// 权限
client.admin.rbac.getPermissions(roleId)
client.admin.rbac.setPermissions(roleId, permissions)

系统选项

client.admin.options.list()
client.admin.options.get(key)
client.admin.options.set(key, value)
client.admin.options.delete(key)
client.admin.options.batchUpdate({ key1: "val1", key2: "val2" })
client.admin.options.getPublic()

Webhook

client.admin.webhooks.list(page?, pageSize?)
client.admin.webhooks.create({ url, events, description?, enabled? })
client.admin.webhooks.get(id)
client.admin.webhooks.update(id, data)
client.admin.webhooks.delete(id)
client.admin.webhooks.batch({ action, ids })

审计日志

client.admin.audit.list(page?, pageSize?)
client.admin.audit.get(id)

定时任务

client.admin.crons.list()
client.admin.crons.create({ name, schedule, handler })
client.admin.crons.get(id)
client.admin.crons.update(id, data)
client.admin.crons.delete(id)
client.admin.crons.toggle(id, enabled)
client.admin.crons.listLogs({ schedule_id?, limit? })
client.admin.crons.cleanupLogs()
client.admin.crons.batch({ action, ids })

API Token

client.admin.tokens.list()
client.admin.tokens.create({ name, scopes, expires_at? })
// 返回 { ...token, token: "raw_token_string" }
client.admin.tokens.delete(id)

工作流

client.admin.workflows.list()
client.admin.workflows.create({ name, steps })
client.admin.workflows.get(id)
client.admin.workflows.delete(id)
client.admin.workflows.start(id, payload?)
client.admin.workflows.listInstances(page?, pageSize?)
client.admin.workflows.getInstance(id)
client.admin.workflows.executeStep(instanceId, { step, action, data? })
client.admin.workflows.cancelInstance(instanceId)
client.admin.workflows.getStepLogs(instanceId)

钱包

client.admin.wallets.listWallets(query?)
client.admin.wallets.listTransactions(query?)
client.admin.wallets.credit({ user_id, currency, amount, reference_type?, reference_id? })
client.admin.wallets.debit({ user_id, currency, amount, reference_type?, reference_id? })
client.admin.wallets.userTransactions(userId, query?)
client.admin.wallets.userCurrencyTransactions(userId, currency, query?)
client.admin.wallets.reversal(txDocId, body?)

货币

client.admin.currencies.list()
client.admin.currencies.get(code)
client.admin.currencies.create(body)
client.admin.currencies.update(code, body)

订单

client.admin.orders.list(query?)
client.admin.orders.get(id)
client.admin.orders.pay(id)
client.admin.orders.ship(id, { tracking_number?, carrier? })
client.admin.orders.cancel(id)
client.admin.orders.refund(id)
client.admin.orders.updateRemark(id, { admin_remark })
client.admin.orders.stats()

支付

client.admin.payment.listChannels(page?, pageSize?)
client.admin.payment.getChannel(id)
client.admin.payment.createChannel(body)
client.admin.payment.updateChannel(id, body)
client.admin.payment.deleteChannel(id)
client.admin.payment.listOrders(query?)
client.admin.payment.getOrder(id)
client.admin.payment.refundOrder(id, body)
client.admin.payment.listTransactions(query?)
client.admin.payment.listRefunds(query?)

商品

client.admin.products.list(page?, pageSize?)
client.admin.products.get(id)
client.admin.products.create(body)
client.admin.products.update(id, body)
client.admin.products.delete(id)

统计

// 仪表盘概览
const overview = await client.admin.stats.overview();

// 某表的内容统计
const contentStats = await client.admin.stats.content("posts");

// 趋势数据
const trends = await client.admin.stats.trends("posts", 30);

列出所有路由

const routes = await client.admin.listRoutes();
// 返回所有已注册的 API 路由

On this page