9.3. 创建自定义连接器


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

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

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

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

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

表 9.1. 自定义连接器元素
Fuse Tooling 元素Fuse Online 元素描述

全局(顶级)属性

连接配置参数

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

操作

连接操作

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

操作中定义的属性

操作配置参数

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

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

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

    每个 全局 属性都对应 Fuse Online 中的连接配置参数。每个 action 属性都对应于 Fuse Online connection action 配置参数。在 Fuse Online 中,当用户选择自定义连接器时,Fuse Online 会提示输入每个连接配置参数的值。自定义连接器可用于使用 OAuth 协议的应用程序。在这种情况下,请确保为 OAuth 客户端 ID 指定全局属性,以及 OAuth 客户端 secret 的另一个全局属性。Fuse Online 用户需要为这些参数指定值,以便从此连接器创建的连接正常工作。

    每个连接器操作都会 声明一个基本 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"
        }
      }
    }
  2. 如果自定义连接器需要额外的依赖项,请将它们添加到项目的 pom.xml 文件中。依赖项的默认范围是 runtime。如果您添加了红帽提供的依赖项,请自行定义其范围,例如:

    <dependencies>
        <dependency>
              <groupId>org.apache.camel</groupId>
              <artifactId>camel-telegram</artifactId>
              <scope>provided</scope>
        </dependency>
          </dependencies>

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.