Hatの佐藤匡剛です。CamelのAPIコンポーネントフレームワークについて紹介します。Fuseの公式ドキュメントくらいしか紹介記事がありません。http://planet.jboss.org/post/apache_camel_api_component_framework_or_how_i_learned_to_stop_worrying_and_love_writing_feature_rich_camel_componentshttps://access.redhat.com/documentation/en-us/red_hat_fuse/7.2/html/apache_camel_development_guide/apicompframeworkCamelを使っていても、実は知らない方が多いのではないかと思います。そこで、以下の全四部構成(予定)でAPIコンポーネントフレームワークの使い方を紹介したいと思います。APIコンポーネントフレームワークとは何か(この記事)APIコンポーネントフレームワークを使ってみるAPIコンポーネントフレームワークの高度な設定APIコンポーネントのテストAPIコンポーネントフレームワークとはCamelでは個々の外部システムとの連携機能を提供するモジュールをコンポーネントと呼びます。SDKの形で提供するAPIを元に、コンポーネントの雛形を生成してくれるCamelの一機能です。実際のところ、Camelがインテグレーションフレームワークとして圧倒的優位にあるのは300以上ある連携コンポーネントの数が大きいと思っていますが、APIコンポーネントフレームワークがコンポーネント開発を大幅に容易にすることでそれを支えています。Alpakkaなど、Camelと競合する魅力的なインテグレーションフレームワークもいくつかありますが、ぜひこのAPIコンポーネントフレームワークの仕組みも採用したらいいのになと思います。APIコンポーネントフレームワークが必要かAPIコンポーネントフレームワークを使わずとも、Camelのカスタムコンポーネントを開発するのは簡単です。APIやSDKライブラリのクラスをCamelコンポーネントとしてラップするための膨大な繋ぎのコードを書かねばならず、大変骨が折れます。した高品質のコンポーネントをたくさん提供しなければならないという、Camelコミュニティにおける開発ニーズからAPIコンポーネントフレームワークは生み出されました。現時点で、このフレームワークを使って作られている標準コンポーネントには以下のものがあります。camel-as2camel-boxcamel-braintreecamel-fhircamel-google-*camel-linkedincamel-olingo2camel-olingo4camel-twiliocamel-zendeskAPIコンポーネントフレームワークの仕組みCamelのコンポーネント開発の基本は、連携対象サービスのインタフェース(API)を以下のようなエンドポイントURIに落とし込むことです。scheme://endpoint?option1=value1&...&optionN=valueN例えばJMSブローカであれば、myqueueという名前のキューをqueue://myqueueのようなエンドポイントで指定できます。SDKライブラリの形で提供されています。SDKの場合は、APIとなるクラスとメソッドをエンドポイントにマッピングすることになります。SDKと同様にAPIとして使います。APIコンポーネントフレームワークのエッセンスは、ビルド時のコード生成と実行時のリフレクションです。それによって、SDKのクラスとメソッドを以下のようなエンドポイントURIに自動的にマッピングします。scheme://apiName/methodName?option1=value1&...&optionN=valueNマッピングのカスタマイズは、プロジェクトpom.xml内のMavenプラグインの設定で行います。pom.xml内にマッピングを定義するだけで、SDKが提供する幅広い機能を網羅的にサポートすることができます。SDKをCamelのエンドポイントとしてラップして、ルートの中で呼び出せるようにする仕組み、のようなものです。おわりに抽象的な話はここまでで終わりです。次の記事からは、このフレームワークを使って実際にAPIコンポーネントを作ってみましょう。Hatソフトウェアエンジニアの佐藤匡剛です。#2...2019-05-13swagger-uiでAPIドキュメント公開方法レッドハットでコンサルティングしているフェンです。Hatの佐藤匡剛です。Hatの佐藤匡剛です。Hatの佐藤匡剛です。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。