9.3. 사용자 정의 커넥터 생성
Fuse Online에서 사용자 지정 커넥터는 하나 이상의 연결 구성 매개 변수, 하나 이상의 연결 동작 및 각 작업에 대한 선택적 구성 매개 변수로 구성됩니다.
사용자 정의 커넥터를 개발하기 위한 작업의 개요는 다음과 같습니다.
- Fuse Online 확장 프로젝트를 만들고 확장 유형으로 Custom Connector 를 선택합니다.
- 확장에 대한 코드를 작성합니다. 기본 Camel 구성 요소, 커넥터 아이콘, 글로벌 커넥터 속성 및 커넥터 작업을 정의합니다.
9.3.1. 사용자 정의 커넥터 코드 작성 링크 복사링크가 클립보드에 복사되었습니다!
Fuse Online 확장 프로젝트를 생성한 후 Fuse Online 사용자가 제공하는 필수 기능에 대한 설명을 기반으로 사용자 지정 커넥터 요소를 정의하는 코드를 작성합니다. 표 9.1. “사용자 정의 커넥터 요소” 표는 Fuse Tooling에서 생성하는 사용자 지정 커넥터 요소가 Fuse Online의 요소에 해당하는 방법을 보여줍니다.
| Fuse Tooling 요소 | Fuse Online 요소 | 설명 |
|---|---|---|
| Global (top-level) 속성 | 연결 구성 매개변수 | Fuse Online 사용자가 이 커넥터에서 연결을 만들 때 사용자는 연결 구성의 일부로 이 속성의 값을 지정합니다. |
| 동작 | 연결 작업 | Fuse Online에서는 이 커넥터에서 생성된 연결을 위해 Fuse Online 사용자가 이러한 작업 중 하나를 선택합니다. |
| 작업에 정의된 속성 | 작업 구성 매개변수 | Fuse Online 사용자가 연결에서 수행하는 작업을 구성할 때 Fuse Online 사용자는 작업 구성의 일부로 이 속성의 값을 지정합니다. |
Fuse Online용 사용자 지정 커넥터를 구현하는 코드를 작성하려면 다음을 수행합니다.
편집기 보기에서 syndesis-extension-definition.json 파일을 열고 전역 속성을 정의하는 코드, 사용자 지정 커넥터에서 수행할 수 있는 작업 및 각 작업의 특성을 작성합니다.Open the syndesis-extension-definition.json file in the Editor view and write the code that defines the global properties, the actions that the custom connector can perform, and each action's properties.
각 글로벌 속성 은 Fuse Online의 연결 구성 매개변수에 해당합니다. 각 action 속성은 Fuse Online 연결 작업 구성 매개변수에 해당합니다. Fuse Online에서 사용자가 사용자 지정 커넥터를 선택하면 Fuse Online에서 각 연결 구성 매개변수에 대한 값을 입력하라는 메시지가 표시됩니다. 사용자 지정 커넥터는 OAuth 프로토콜을 사용하는 애플리케이션에 사용할 수 있습니다. 이 경우 OAuth 클라이언트 ID에 대한 전역 속성과 OAuth 클라이언트 시크릿에 대한 다른 글로벌 속성을 지정해야 합니다. Fuse Online 사용자는 이 커넥터에서 작동하도록 생성된 연결에 대해 이러한 매개 변수의 값을 지정해야 합니다.
각 커넥터 작업 은 기본 Camel 구성 요소 스키마를 선언합니다.
New Fuse Online Extension Project 마법사에서 제공하는 예에서는
telegramCamel 구성 요소 스키마를 사용합니다.{ "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" } } }사용자 지정 커넥터에 추가 종속 항목이 필요한 경우 프로젝트의
pom.xml파일에 추가합니다. 종속성의 기본 범위는 런타임입니다. Red Hat이 제공하는 종속성을 추가하는 경우, 제공된 범위(예:)를 정의합니다.<dependencies> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-telegram</artifactId> <scope>provided</scope> </dependency> </dependencies>
사용자 정의 커넥터의 코드 작성을 마치면 9.5절. “Fuse Online extension JAR 파일 빌드” 에 설명된 대로 .jar 파일을 빌드합니다.