@crvouga/mockingbird-service-airtable (英语)
本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .
WIP Airable OAuth和形式-集成模拟器. 这里只有合成装置.
安装
bun add @crvouga/mockingbird-service-airtable
使用量
import { createServer } from "@crvouga/mockingbird-service-airtable/server"
const server = await createServer()
// The application's own HTTP call (airtable.js has no metadata API). Only the origin changes.
const response = await fetch(`${server.url}/v0/meta/bases`, {
headers: { authorization: "Bearer mock_airtable_token" },
})
const { bases } = (await response.json()) as { bases: { id: string; name: string }[] }
console.log(bases.map((base) => base.id)) // ["appMockBase"]
await server.close()
运行 mockingbird-airtable serve --port 12130在可选的集成中,输入其来源于API和OAuth;消费者端点接线是分开的.
表面和状态
- 邮政
/oauth2/v1/token:格式编码授权码并刷新赠款. 保密客户需要基本资质证明;公共客户使用body客户端 id. 代码要求S256 PKCE和精确的重定向/客户绑定,过期于时钟,在核查者检查前被消耗,因此即使是被拒绝的核查者也无法重放. 刷新两个符都旋转;访问持续60分钟并刷新60天. 允许缩小范围。 所记录的后导空间token_type: "Bearer "保留. - 获取
/v0/meta/whoami:用户名和范围,加电子邮件user.email:read。 。 。 . - 获取
/v0/meta/bases: 无障碍基准/射入量和不透明相抵页pageSize,默认值1000). - 获取
/v0/meta/bases/{baseId}/tables: 表图/场/视图,用于无障碍基. - 邮政
/v0/meta/bases/{baseId}/tables/{tableId}/fields: 添加支持的窗体-字段方案并保留选项. - 邮政
/v0/{baseId}/{tableId}:最多10个记录,或一个顶级的字段对象. 接受字段代号或名称;只有在每次输入记录验证后才持续. 空单元格被省略.returnFieldsByFieldId控制响应键。 表格名称别名工作.
默认负载者 mock_airtable_token刷新时 mock_airtable_refresh客户端 mock_client 编号 : mock_client_secret; 基础 appMockBase列表 tblMockTable字段 fldMockName 名称。 默认范围允许计划读取/写入、记录书写和合成电子邮件。 赠款范围与基地角色门业务独立. 缺失/无法访问的基数为403;无效/过期访问为401;无效细胞为422,没有部分记录.
种子 bases, (中文(简体) ), tables, (中文(简体) ), grants, (中文(简体) ), clients, (中文(简体) ), codes,以及 records 使用构造器选项或标准管理状态。 键入表单所支持的字段会写: 单行线 Text,多行线 Text, richText, 电子邮件, url, 电话号码, 数字, 百分比, 货币, 持续时间, 评分, 复选框, 日期, 日期时间, 单选和多选 。 选择、精确度和复选框外观的选项被保留;选择的值必须指定一个被种子选择的名称。 Scalar验证涵盖电线类型,而不是每个供应商的提交限制。 未知的字段类型失败, 而不是默默接受任意值 .
测试控制
标准可移动 /__admin 健康 状态 重置 时钟 时间线检查站 请求日记 度量衡和过失 标题命名空间, /__admin/ns/<name> 路径和无记名绘图将记录/赠款隔离。 日记只包含元数据,而不是 OAuth 机构或提交表单值. 预设 : unauthorized, (中文(简体) ), rate_limited (429,30后重试),,, invalid_schema (422个), server_error, (中文(简体) ), connection_drop普通的过失规则增加了延迟。 不需要网络攻击 .
甲骨文和测试
跟随正式的空气表 奥奥特, (中文(简体) ), 身份, (中文(简体) ), 基础, (中文(简体) ), 计划, (中文(简体) ), 字段创建, (中文(简体) ), 记录创建 财务报告和审定财务报表 错误 参考文献。 没有成功现场OAuth或SaaS写作;没有使用证书.
bun test 运行原始的接受,每一次操作的自平和相差分检测. 消费者是一个忠实的有线地港,不是无法进入的私人来源. bun run parity 需求 AIRTABLE_ACCESS_TOKEN;它只执行一个只读的身份封装探测器,从不打印标识符.
故意不模拟
实际SaaS没有写作,公式/计算列,链接记录,附件,合作者,视图编辑,协作UI或生产-整合活化. 没有打字机转换,没有完整的字段选项/演示验证,没有真实的定额核算,没有准确的出错道出或内部抵消格式. Schema种子可能包含额外的元数据;写作只验证所列出的窗体-字段类型. OAuth重试宽度/相冲突时间,授权UI和企业政策发现不模拟;故障控制可以脚本这些出错. 托肯斯/ids是当地决定式的站台.
API 密码
根运行时间导出 : AirtableAPI, (中文(简体) ), AIRTABLE_NAMESPACE, (中文(简体) ), createRuntime, (中文(简体) ), AIRTABLE_PRESETS, (中文(简体) ), document, (中文(简体) ), operationIds, (中文(简体) ), supportedOperationIds。类型 : AirtableAPIOptions, (中文(简体) ), Field, (中文(简体) ), Table, (中文(简体) ), Base, (中文(简体) ), Grant, (中文(简体) ), Client, (中文(简体) ), OAuthCode, (中文(简体) ), StoredRecord, (中文(简体) ), AirtableRuntimeOptions, (中文(简体) ), AirtableRuntime, (中文(简体) ), OperationId, (中文(简体) ), SupportedOperationId。 。 。 .
/server 出口 createServer, (中文(简体) ), serveTarget, (中文(简体) ), DEFAULT_PORT; 类型 AirtableServerOptions, (中文(简体) ), AirtableServer。 。 。 .