It seems you may be using English. Would you like to go to the international site? bika.ai
产品指南
仪表盘
大数据多维表格
空间站
集成指南
自动化指南
企业AI智能体模板
私有化部署
开发者与扩展
最佳实践
marketing
功能参考
自动化触发器
自动化执行器
第三方集成
节点资源
数据表视图
数据表字段
仪表盘组件
智能任务
AI 向导
公式
空间站
更新日志
视频演示

OpenAPI 快速入门

欢迎使用 Bika.ai OpenAPI 快速入门指南!

本文档提供一系列示例,帮助你开始使用 Bika.ai API 和 SDK。每个部分包含常见操作的代码片段,包括获取数据、创建记录、更新记录、删除记录和使用自动化功能。

基本概念

在使用 OpenAPI 之前,我们需要首先了解 Bika.ai 的结构和对象层次结构。

  • 空间站(Space)
    • 节点资源(Node Resources):
      • 数据表(Database)
      • 自动化(Automation)
      • 仪表盘(Dashboard)
      • 文档(Document)
      • AI 聊天机器人(AI Chatbot)
      • ……

空间站是你的工作区。它包含我们前面提到的所有节点资源,包括数据表、自动化、仪表盘和其他组件。在使用 OpenAPI 时,数据检索必须按照这种结构进行。

例如,如果你想在空间站 A 中获取由节点 B 表示的数据表 C,API 将类似于spaceA.nodeB->resoure->databaseB.

请注意,节点 ID 等同于资源 ID;例如,节点 ID 和数据表 ID 是相同的。

对于如下 URL:

https://bika.ai/space/spcND68gdMMZBmGK67gvqNVX/node/datJubyEnetNFd3UQ6gSeq7U/viwYHuzUxRngq5igMkw9PPIX

空间站 ID:spcND68gdMMZBmGK67gvqNVX

节点 ID = 数据表 ID:datJubyEnetNFd3UQ6gSeq7U

相关的 TypeScript SDK 采用面向对象的设计风格,这大大简化了你的代码。

同样,空间站 UI 也遵循上述数据结构层。

欲了解详情,请阅读 https://bika.ai/help 上的帮助文档首页,查看空间站的整体 UI 介绍。

cURL

OpenAPI 基于 HTTP 协议,以下是使用 cURL 命令行工具调用 Bika.ai OpenAPI 的示例。

有关更多 API 详情,请查看 Bika.ai API Reference

你可以使用任何支持这些 OpenAPI 端点的 HTTP 客户端访问它们,如 cURL、Python Requests、Node.js axios、Rust reqwest 等。

获取系统元信息

curl -X GET "https://bika.ai/api/openapi/bika/v1/system/meta" -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}"

响应示例:

{
    "success": true,
    "code": 200,
    "message": "SUCCESS",
    "data": {
        "version": "1.0.0-release.0",
        "appEnv": "PRODUCTION",
        "hostname": "https://bika.ai",
        "headers": {
            "X-Forwarded-For": "35.96.5.64",
            "User-Agent": "curl/8.4.0"
        }
    }
}

获取空间站列表

curl -X GET "https://bika.ai/api/openapi/bika/v1/spaces" -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}"

创建新记录

假设我们已获取到某个空间站的 ID 为 {SPACE_ID},节点 ID 为 {NODE_ID},并且数据表 ID 始终等于节点 ID。以下是创建新记录的示例:

curl -X POST "https://bika.ai/api/openapi/bika/v1/spaces/{SPACE_ID}/resources/databases/{NODE_ID}/records" \
    -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    -H "Content-Type: application/json" \
    -d '{
        "cells": {
            "Name": "New record",
            "Description": "This is a new database record"
        }
    }'

更新记录

假设记录 ID 为 {RECORD_ID},更新记录的示例如下:

curl -X PUT "https://bika.ai/api/openapi/bika/v1/spaces/{SPACE_ID}/resources/databases/{NODE_ID}/records/{RECORD_ID}" \
    -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    -H "Content-Type: application/json" \
    -d '{
        "fields": {
            "Description": "Updated description field column"
        }
    }'

删除记录

curl -X DELETE "https://bika.ai/api/openapi/bika/v1/spaces/{SPACE_ID}/resources/databases/{NODE_ID}/records/{RECORD_ID}" \
    -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}"

列出自动化触发器

假设节点 ID 为 {NODE_ID},示例如下:

curl -X GET "https://bika.ai/api/openapi/bika/v1/spaces/{SPACE_ID}/resources/automation/{NODE_ID}/triggers" \
    -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}"

注册出站 Webhook

curl -X POST "https://bika.ai/api/openapi/bika/v1/spaces/{SPACE_ID}/outgoing-webhooks" \
    -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    -H "Content-Type: application/json" \
    -d '{
        "eventType": "ON_RECORD_CREATED",
        "name": "Create webhook",
        "description": "Example trigger when a new record is created",
        "callbackURL": "https://your - custom - callback - url.com"
    }'

Python HTTP 客户端

安装依赖

首先,确保已安装 requests 库。你可以使用以下命令安装:

pip install requests

获取系统元数据

import requests

access_token = "{YOUR_ACCESS_TOKEN}"
url = "https://bika.ai/api/openapi/bika/v1/system/meta"
headers = {
    "Authorization": f"Bearer {access_token}"
}
response = requests.get(url, headers = headers)
print(response.json())

获取空间站列表

import requests

access_token = "{YOUR_ACCESS_TOKEN}"
url = "https://bika.ai/api/openapi/bika/v1/spaces"
headers = {
    "Authorization": f"Bearer {access_token}"
}
response = requests.get(url, headers = headers)
spaces = response.json()["data"]
print(spaces)

获取数据表记录

import requests
import json

access_token = "{YOUR_ACCESS_TOKEN}"
space_id = "{SPACE_ID}"
node_id = "{NODE_ID}"
database_id = "{DATABASE_ID}"
url = f"https://bika.ai/api/openapi/bika/v1/spaces/{space_id}/resources/databases/{node_id}/records"
headers = {
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}
data = {
    "fields": {
        "Name": "New record",
        "Description": "This is a new database record"
    }
}
response = requests.post(url, headers = headers, data = json.dumps(data))
print(response.json())

创建新记录

import requests
import json

access_token = "{YOUR_ACCESS_TOKEN}"
space_id = "{SPACE_ID}"
node_id = "{NODE_ID}"
database_id = "{DATABASE_ID}"
url = f"https://bika.ai/api/openapi/bika/v1/spaces/{space_id}/resources/databases/{node_id}/records"
headers = {
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}
data = {
    "cells": {
        "Name": "New record",
        "Description": "This is a new database record"
    }
}
response = requests.post(url, headers = headers, data = json.dumps(data))
print(response.json())

更新记录

import requests
import json

access_token = "{YOUR_ACCESS_TOKEN}"
space_id = "{SPACE_ID}"
node_id = "{NODE_ID}"
database_id = "{DATABASE_ID}"
record_id = "{RECORD_ID}"
url = f"https://bika.ai/api/openapi/bika/v1/spaces/{space_id}/resources/databases/{node_id}/records/{record_id}"
headers = {
    "Authorization": f"Bearer {access_token}",
    "Content - Type": "application/json"
}
data = {
    "fields": {
        "Description": "Updated description field column"
    }
}
response = requests.put(url, headers = headers, data = json.dumps(data))
print(response.json())

删除记录

import requests

access_token = "{YOUR_ACCESS_TOKEN}"
space_id = "{SPACE_ID}"
node_id = "{NODE_ID_DATABASE_ID}"
record_id = "{RECORD_ID}"
url = f"https://bika.ai/api/openapi/bika/v1/spaces/{space_id}/resources/databases/{node_id}/records/{record_id}"
headers = {
    "Authorization": f"Bearer {access_token}"
}
response = requests.delete(url, headers = headers)
print(response.json())

列出自动化触发器

import requests

access_token = "{YOUR_ACCESS_TOKEN}"
space_id = "{SPACE_ID}"
node_id = "{NODE_ID}"
url = f"https://bika.ai/api/openapi/bika/v1/spaces/{space_id}/nodes/{node_id}/automation/triggers"
headers = {
    "Authorization": f"Bearer {access_token}"
}
response = requests.get(url, headers = headers)
triggers = response.json()["data"]
print(triggers)

注册出站 Webhook

import requests
import json

access_token = "{YOUR_ACCESS_TOKEN}"
space_id = "{SPACE_ID}"
url = f"https://bika.ai/api/openapi/bika/v1/spaces/{space_id}/outgoing-webhooks"
headers = {
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}
data = {
    "eventType": "ON_RECORD_CREATED",
    "name": "Create webhook",
    "description": "Example trigger when a new record is created",
    "callbackURL": "https://your - custom - callback - url.com"
}
response = requests.post(url, headers = headers, data = json.dumps(data))
print(response.json())

通过上述 cURL 和 Python 示例,开发者可以更方便地使用 Bika.ai OpenAPI 执行各种操作。欲了解更多详细信息,请参考 Bika.ai API 文档。

TypeScript / JavaScript SDK

Bika.ai 提供官方 TypeScript/JavaScript SDK,在使用 Bika.ai OpenAPI 时可以进行便捷的面向对象编程。

前提条件

  1. Node.js 已安装在你的机器上。
  2. Bika.ai API Token: 在 Bika.ai 上注册并从用户设置中获取 API 令牌。

安装

首先,使用 npm 安装 Bika.ai SDK:

npm install bika.ai
# 或者
yarn add bika.ai
pnpm add bika.ai

示例 1:获取数据

此示例演示如何获取空间站、节点和记录。

import { Bika } from 'bika.ai';

const bika = new Bika({
    token: '__PASTE_YOUR_API_TOKEN_FROM_USER_SETTING__',
    baseURL: 'https://bika.ai/api/openapi/bika',
});

async <em>function</em> fetchRecords() {
    try {
        const spaces = await bika.space.list();
        const space = spaces[0];
        const nodes = await space.nodes.list();
        const node = nodes.find((node) => node.resourceType === 'DATABASE');
        const database = await node?.asDatabase();
        const records = await database?.records.list();
        console.log('Records:', records);
    } catch (error) {
        console.error('Error fetching data:', error);
    }
}

fetchRecords();

示例 2:创建新记录

使用此示例在数据表中创建新记录。

import { Bika } from 'bika.ai';

const bika = new Bika({
    token: '__PASTE_YOUR_API_TOKEN_FROM_USER_SETTING__',
    baseURL: 'https://bika.ai/api/openapi/bika',
});

async <em>function</em> createRecord() {
    try {
        const spaces = await bika.space.list();
        const space = spaces[0];
        const nodes = await space.nodes.list();
        const node = nodes.find((node) => node.resourceType === 'DATABASE');
        const database = await node?.asDatabase();
        const newRecord = await database?.records.create({
            cells: {
                Name: 'New record',
            },
        });

        console.log('New Record Created:', newRecord);
    } catch (error) {
        console.error('Error creating record:', error);
    }
}
createRecord();

示例 3:更新记录

此示例更新现有记录。

import { Bika } from 'bika.ai';

const bika = new Bika({
    token: '__PASTE_YOUR_API_TOKEN_FROM_USER_SETTING__',
    baseURL: 'https://bika.ai/api/openapi/bika',
});

async function updateRecord(recordId: string) {
    try {
        const spaces = await bika.space.list();
        const space = spaces[0];
        const nodes = await space.nodes.list();
        const node = nodes.find((node) => node.resourceType === 'DATABASE');
        const database = await node?.asDatabase();
        const updatedRecord = await database?.records.update({
            id: recordId,
            cells: {
                Name: 'Updated Record',
            },
        });

        console.log('Database:', database);
        console.log('Record Updated:', updatedRecord);
    } catch (error) {
        console.error('Error updating record:', error);
    }
}

updateRecord('__REPLACE_WITH_RECORD_ID__');

示例 4:删除记录

使用此示例删除特定记录。

import { Bika } from 'bika.ai';

const bika = new Bika({
    token: '__PASTE_YOUR_API_TOKEN_FROM_USER_SETTING__',
    baseURL: 'https://bika.ai/api/openapi/bika',
});

async function deleteRecord(recordId: string) {
    try {
        const spaces = await bika.space.list();
        const space = spaces[0];
        const nodes = await space.nodes.list();
        const node = nodes.find((node) => node.resourceType === 'DATABASE');
        const database = await node?.asDatabase();
        await database?.records.delete(recordId);

        console.log('Database:', database);
        console.log('Record Deleted:', recordId);
    } catch (error) {
        console.error('Error deleting record:', error);
    }
}

deleteRecord('__REPLACE_WITH_RECORD_ID__');

示例 5:列出自动化触发器

此示例展示如何列出自动化触发器。

import { Bika } from 'bika.ai';

const bika = new Bika({
    token: '__PASTE_YOUR_API_TOKEN_FROM_USER_SETTING__',
    baseURL: 'https://bika.ai/api/openapi/bika',
});

async function listTriggers() {
    try {
        const spaces = await bika.space.list();
        const space = spaces[0];
        const nodes = await space.nodes.list();
        const node = nodes.find((node) => node.resourceType === 'AUTOMATION');
        const automation = await node?.asAutomation();
        const triggers = await automation?.triggers.list();
        
        console.log('Triggers:', triggers);
    } catch (error) {
        console.error('Error listing triggers:', error);
    }
}
listTriggers();

示例 6:注册出站 Webhook

此示例演示如何注册出站 webhook。

import { Bika } from 'bika.ai';

const bika = new Bika({
    token: '__PASTE_YOUR_API_TOKEN_FROM_USER_SETTING__',
    baseURL: 'https://bika.ai/api/openapi/bika',
});

async function registerWebhook() {
    try {
        const spaces = await bika.space.list();
        const space = spaces[0];
        const outgoingWebhook = await space.outgoingWebhooks.register({
            eventType: 'ON_RECORD_CREATED',
            name: 'Create webhook',
            description: 'Exampple trigger when a new record cretaed',
            callbackURL: 'https://your-custom-callback-url.com',
        });

        console.log('Webhook Registered:', outgoingWebhook);
    } catch (error) {
        console.error('Error registering webhook:', error);
    }
}
registerWebhook();

示例 7:嵌入 Bika.ai 的 UI(暂不支持)

以下是将 Bika.ai 的 UI 嵌入到你自己的应用程序中的示例。

如果你想将 Bika.ai 强大的数据表、文档等 UI 集成到你的应用程序中,可以使用嵌入链接 API。

生成嵌入链接以获取 URL,然后在你的应用程序中使用 <iframe> 。

import { Bika } from 'bika.ai';<em>

</em>const bika = new Bika({<em>
</em>    token: '__PASTE_YOUR_API_TOKEN_FROM_USER_SETTING__',<em>
</em>    baseURL: 'https://bika.ai/api/openapi/bika',<em>
</em>});<em>

</em>async function createEmbedLink(resourceId: string) {<em>
</em>    try {<em>
</em>        const spaces = await bika.space.list();<em>
</em>        const space = spaces[0];<em>
</em>        const embedLink = await space.embedLinks.create({<em>
</em>            objectType: 'NODE_RESOURCE',<em>
</em>            objectId: resourceId,<em>
</em>          });<em>

</em>        console.log('Embed Link:', embedLink);<em>
</em>    } catch (error) {<em>
</em>        console.error('Error creating embed link:', error);<em>
</em>    }<em>
</em>}<em>
</em>createEmbedLink('__NODE_RESOURCE_ID_YOU_WANT_TO_EMBED__');<em>

</em>// else<em>
</em>const embedLinks = await space.embedLink.list();<em>
</em>const deleteEmbedLink = await space.embedLink.delete({id: [embedLink.id](http://embedlink.id/)});

创建嵌入式 Bika.ai UI 后,你可以使用 <iframe> 标签在网页上显示它。以下是简单示例:

<iframe src="YOUR_EMBEDDED_UI_URL" width="800" height="600"></iframe>

YOUR_EMBEDDED_UI_URL 替换为你创建的嵌入式 Bika.ai UI 的实际 URL。你可以根据布局需求调整宽度和高度属性。

结论

本快速入门指南提供了基本示例,帮助你有效地与 Bika.ai OpenAPI 和 SDK 交互。你可以根据特定用例需求修改和扩展这些示例。欲了解更多详细信息,请参考 Bika.ai API 文档.

祝你编码愉快!

bika cta

推荐阅读

推荐AI自动化模板

Stakeholder Analysis
Team interaction is the key to propelling projects forward, the bond that maintains alignment among project teams, and the link that facilitates strategic planning. Even seasoned project managers find the complexity of project management increasing as the number of team members and key stakeholders expands.
热点股票新闻汇总
该模板通过查询和汇总特定公司的新闻,每日为您提供 10 条精选的新闻报告,帮助您做出投资决策。
SWOT Analysis
The SWOT analysis, alternatively known as a SWOT matrix, aids in pinpointing the Strengths, Weaknesses, Opportunities, and Threats associated with any prospective decision-making process.
团队任务分发和提醒自动化
此模板利用自动化工具高效分配任务,及时提醒进度和截止日期,提升团队效率和任务质量。
Telegram 定时提醒
您可以在 Telegram 群组、频道和私聊中设置定时提醒。确保团队成员按时完成任务、参加会议或了解重要信息。这个功能帮助提高团队的协作效率,确保工作顺利进行。
新的未命名文件夹
123