9.3. 创建自定义连接器


在 Fuse Online 中,自定义连接器由一个或多个连接配置参数、一个或多个连接操作以及每个操作的可选配置参数组成。

以下是开发自定义连接器的任务概述:

  1. 创建 Fuse Online 扩展项目,再选择 Custom Connector 作为扩展类型。
  2. 编写扩展代码。定义基础 Camel 组件、连接器图标、全局连接器属性和连接器操作。

9.3.1. 为自定义连接器编写代码

创建 Fuse Online 扩展项目后,您将根据 Fuse Online 用户为您提供所需功能的描述,编写用于定义自定义连接器元素的代码。表 9.1 “自定义连接器元素” 表显示您在 Fuse 工具中创建的自定义连接器元素如何与 Fuse Online 中的元素对应。

Expand
表 9.1. 自定义连接器元素
Fuse 工具元素Fuse Online 元素描述

全局(顶级)属性

连接配置参数

当 Fuse Online 用户从此连接器创建连接时,用户指定这个属性的值作为连接配置的一部分。

操作

连接操作

在 Fuse Online 中,对于从此连接器创建的连接,Fuse Online 用户选择一项操作。

操作中定义的属性

操作配置参数

当 Fuse 在线用户配置连接执行的操作时,Fuse Online 用户将此属性的值指定为操作的一部分。

为 Fuse 在线编写实现自定义连接器的代码:

  1. 在 Editor 视图中打开 syndesis-extension-definition.json 文件,并编写定义全局属性的代码、自定义连接器可以执行的操作以及每个操作的属性。

    每个 全局 属性都对应于 Fuse Online 中的连接配置参数。每个 action 属性都对应于 Fuse 在线连接操作配置参数。在 Fuse 中,当用户选择自定义连接器时,Fuse Online 会提示输入每个连接配置参数的值。自定义连接器可用于使用 OAuth 协议的应用程序。在本例中,请务必为 OAuth 客户端 ID 指定全局属性,以及 OAuth 客户端 secret 的另一个全局属性。Fuse 在线用户需要为从此连接器创建的连接指定这些参数的值。

    每个 连接器操作都 会声明一个基本的 Camel 组件方案。

    New Fuse Online Extension Project 向导提供的示例使用 telegram Camel 组件方案:

    {
      "schemaVersion" : "v1",
      "name" : "Example Fuse Online Extension",
      "extensionId" : "fuse.online.extension.example",
      "version" : "1.0.0",
      "actions" : [ {
        "id" : "io.syndesis:telegram-chat-from-action",
        "name" : "Chat Messages",
        "description" : "Receive all messages sent to the chat bot",
        "descriptor" : {
          "componentScheme" : "telegram",
          "inputDataShape" : {
            "kind" : "none"
          },
          "outputDataShape" : {
            "kind" : "java",
            "type" : "org.apache.camel.component.telegram.model.IncomingMessage"
          },
          "configuredProperties" : {
            "type" : "bots"
          }
        },
        "actionType" : "connector",
        "pattern" : "From"
      }, {
        "id" : "io.syndesis:telegram-chat-to-action",
        "name" : "Send a chat Messages",
        "description" : "Send messages to the chat (through the bot).",
        "descriptor" : {
          "componentScheme" : "telegram",
          "inputDataShape" : {
            "kind" : "java",
            "type" : "java.lang.String"
          },
          "outputDataShape" : {
            "kind" : "none"
          },
          "propertyDefinitionSteps" : [ {
            "description" : "Chat id",
            "name" : "chatId",
            "properties" : {
              "chatId" : {
                "kind" : "parameter",
                "displayName" : "Chat Id",
                "type" : "string",
                "javaType" : "String",
                "description" : "The telegram's Chat Id, if not set will use CamelTelegramChatId from the incoming exchange."
              }
            }
          } ],
          "configuredProperties" : {
            "type" : "bots"
          }
        },
        "actionType" : "connector",
        "pattern" : "To"
      } ],
      "properties" : {
        "authorizationToken" : {
          "kind" : "property",
          "displayName" : "Authorization Token",
          "group" : "security",
          "label" : "security",
          "required" : true,
          "type" : "string",
          "javaType" : "java.lang.String",
          "secret" : true,
          "description" : "Telegram Bot Authorization Token"
        }
      }
    }
    Copy to Clipboard Toggle word wrap
  2. 如果自定义连接器需要其他依赖项,请将它们添加到项目的 pom.xml 文件中。依赖项的默认范围是运行时。如果您添加了红帽提供的依赖项,请定义其所提供的范围,例如:

    <dependencies>
        <dependency>
              <groupId>org.apache.camel</groupId>
              <artifactId>camel-telegram</artifactId>
              <scope>provided</scope>
        </dependency>
          </dependencies>
    Copy to Clipboard Toggle word wrap

完成编写自定义连接器的代码后,构建 .jar 文件,如 第 9.5 节 “构建 Fuse Online 扩展 JAR 文件” 所述。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat