扩展入口点
您的操作有两个入口点。 App 入口点是 app
文件,API 入口点是扩展包的 src/
文件夹中的 api
文件。 了解有关操作的更多信息
应用入口点
App 入口点导出一个配置对象,其中包含用于配置操作外观的选项。 加载您的操作时,此对象由 Directus App 主机导入。
入口点示例:
js
export default {
id: 'custom',
name: 'Custom',
icon: 'box',
description: 'This is my custom operation!',
overview: ({ text }) => [
{
label: 'Text',
text,
},
],
options: [
{
field: 'text',
name: 'Text',
type: 'string',
meta: {
width: 'full',
interface: 'input',
},
},
],
}
#### 可用选项
id
— 此操作的唯一键。 使用作者前缀来限定专有操作的范围是一种很好的做法。name
— 此操作的人类可读名称。icon
— 来自 material icon set 的图标名称,或 Directus 自定义图标的扩展列表。description
— 应用程序中显示的此操作的简短描述(<80 个字符)。overview
— 将显示在操作的磁贴上的概述。 可以是接收操作选项并返回包含“标签”和“文本”的对象数组的函数,也可以是专用的 Vue 组件。options
— 操作的选项。 可以是选项对象或专用的 Vue 组件。
API入口点
API 入口点导出一个配置对象,其中包含用于配置操作行为的选项。 加载操作时,此对象由 Directus API 主机导入。
入口点示例:
js
export default {
id: 'custom',
handler: ({ text }) => {
console.log(text)
},
}
可用选项
id
— 此操作的唯一键。 使用作者前缀来限定专有操作的范围是一种很好的做法。handler
— 操作的处理函数。
扩展 ID
两个入口点的扩展 ID 必须相同,以便 Directus 将它们识别为同一扩展的一部分。
处理函数
只要执行操作连接到的流,就会调用 API 端点内定义的处理函数。 要触发连接到“resolve”锚点的操作,处理函数必须返回一个值。 要触发连接到“拒绝”锚点的操作,处理函数必须抛出一个值。 然后,此值将添加到 流对象。
处理函数接收两个参数“options”和“context”。 options
是一个对象,它以操作的选项作为属性及其各自的已插值。 context
是具有以下属性的对象:
services
— 所有 API 内部服务。exceptions
— 可用于抛出“适当”错误的 API 异常对象。database
— 连接到当前数据库的 Knex 实例。getSchema
— 读取服务中使用的完整可用模式的异步函数env
— 解析的环境变量。logger
— Pino 实例。data
— 包含先前操作返回的原始数据的对象。accountability
— 触发器收到的有关当前用户的信息。