PR

APIファーストの設計ツール「Apicurio」「Microcks」を使ってみよう!

2020年3月12日(木)
杉本 拓

Apicurio StudioとMicrocksの連携

デフォルトでApicurio StudioはMicrocksと連携はしていませんが、OpenID Connectを介して直接連携できるようになっています。設定方法はこちらに記載があります。Apicurio Studioの起動時に以下のオプションを追加します。

  • MicrocksのAPIに対するURL
  • MicrocksのレルムにおけるクライアントID
  • Microcksのレルムにおけるクライアントシークレット
  • Apicurioの画面で連携機能を表示するフラグ

ここでは、次のようなコマンドを実行してMicrocksとApicurio Studioを連携させます。

$ ./bin/standalone.sh    -c standalone-apicurio.xml \
-Dapicurio.hub.microcks.api=http://microcks-microcks.192.168.64.100.nip.io/api \
-Dapicurio.hub.microcks.clientId=microcks-serviceaccount \
-Dapicurio.hub.microcks.clientSecret=98e07557-27d0-4f1a-be00-a382a29402fe \
-Dapicurio-ui.feature.microcks=true

なお、クライアントシークレットの値はKeycloakの管理コンソールでClientsメニューからmicrocks-serviceaccountを選択し、Credentialsタブに表示されるSecretの値を使用します(図20)。

図20:クライアントシークレットの値にはCredentialsタブに表示されるSecretの値を使用

Microcksとの連携オプションを付けてApicurio Studioを起動すると、Pet Store APIにAPI Mockingのメニューが追加されます(図21)。

図21:Pet Store APIにAPI Mockingのメニューが追加された

[Mock with Microcks]ボタンをクリックするとAPIのモックを作成画面が表示されるので、[Mock API]をクリックしましょう(図22)。

図22:モックの作成画面

Microcksにモックが作成されると、作成完了画面が表示されます(図23)。

図23:モックの作成が完了した

Apicurio StudioでPet Store APIの画面に戻りAPI Mockingセクションを見ると、このAPIのモックがMicrocksに作成されていることが確認できます(図24)。

図24:Pet Store API画面でAPIのモックが作成されているを確認

[View in Microcks]ボタンをクリックするとMicrocksの画面に遷移し、Pet Store APIのモック画面が表示されます(図25)。

図25:Pet Store APIのモック画面

例えば、GET /petsを選択すると、このAPIに対するモックの情報が表示されます(図26)。

図26:GET /petsのAPIに対するモック情報が表示される

また、Mock URLのURLをコピーしてcurlコマンドを実行すると、モックのダミーの値が返ってきます。

$ curl http://microcks-microcks.192.168.64.100.nip.io/rest/Pet+Store+APIs/1.0.0/pets
[{"id":1,"name":"Zaza","tag":"cat"},{"id":2,"name":"Tigresse","tag":"cat"},{"id":3,"name":"Maki","tag":"cat"},{"id":4,"name":"Toufik","tag":"cat"}]

このように、Apicurio StudioとMicrocksを組み合わせるとAPIを設計し、APIの実装を待たずしてAPIのモックを使用したAPIクライアントの開発が進められます。

おわりに

最後に、Apicurio関連のプロジェクトを紹介します。サブプロジェクトとしては、Apicurio Studioとは別にApicuritoApicurio RegistryといったAPIに関するオープンソースのプロジェクトがあります。

Apicurito

ApicuritoはApicurio Studioの軽量版で、データベースを使用しないステートレスなアプリケーションです。Syndesisというクラウドネイティブなインテグレーション基盤にも組み込まれており、Syndesisを使うとAPIの設計・実装と他システムとの連携がノーコード/ローコードで実現できます。

Apicurio Registry

Apicurio RegistryはAPIのレジストリとして、OpenAPIだけでなくApache Avro、JSON、Protobuf、AsyncAPIなどのデータフォーマットに対応し、サービスやイベントのスキーマ情報を格納します。

これらのApicurioの関連プロジェクトについては、また別の機会に紹介したいと思います。

レッドハット株式会社
外資系ソフトウェアベンダーにおいて、SOA、分散システム、アジャイル開発、デジタルマーケティング、コンテンツ管理などの分野でのコンサルティング業務に従事。2016年よりRed Hatにおいて、APIとインテグレーションのソリューションアーキテクトとしてクラウド時代のインテグレーションのあり方を提案し、導入のための支援を行っている。

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています