• isana.net

apigeeについて


apigeeとは

apigeeは、既存のサービス内で使用しているWebAPIを一般向けにも公開したい場合に便利なサービスです。

apigee https://apigee.com/api-management/#/homepage

例えば 既存のサービス内で使用しているWebAPIを一般にも公開して、使ってもらうような場合 そのまま公開するのはセキュリティや、負荷の面でもリスクが大きいです。

また、一般公開するのであれば、開発者向けの情報をまとめたり、 安定した運用の為にも利用状況の把握も必要になってきます。

このような場合に、ユーザーと既存のサービスの間にapigeeがリバースプロキシとして入ることで、前述のような課題の解決だけでなく、様々な恩恵を得ることが出来ます。

<apigeeが提供するサービスの一例> ・セキュリティ対策 ・負荷対策の為のキャッシュ機能 ・開発者向けポータル ・利用状況の分析 ・apigee上での機能拡張

開発者向けの情報の一例としては、Twitterでも利用していますね。 https://dev.twitter.com/rest/tools/console

機能拡張についても、認証を付けるといった簡単なものから Node.jsを使った本格的な拡張までできるようです。

後述しますが、apigeeの別のサービスと組み合わせることで、apigeeだけでサービスの提供も可能です。

利用の流れ

まずはapigeeへの登録。ここで設定したUsernameはドメイン名などに使われます。


登録するとこのような画面になります。 (ユーザー名などが表示される為、上部を少し切っています)


apigeeを利用するには、APIの仕様を定義します(Specs) YAMLか、JSONで定義でき、既に定義したファイルがあれば、インポートすることも可能です。


とりあえず、お試しで触りたいだけであれば、チュートリアル用に定義ファイルが用意されているので、チュートリアルに沿って進めると便利です。

API仕様を作成したら、そこに繋ぐプロキシを作成します(API Proxies)

作成したAPI仕様から生成することも出来ますし、1から作り始めることもできます。 API仕様から生成しない場合、以下の種類から選択して作ることになります。


後は、出てくる項目を必要に合わせて設定すれば、プロキシの出来上がりです。


シンプルなリバースプロキシを用意するだけであればこれで終了です。

簡単な内容ですが、既存のWebAPIを隠蔽することもできますし、apigeeが間にいることで利用状況も把握できるようになりました。 メニューからエラーや、パフォーマンス、キャッシュの効果まで視覚的に確認できます。

API仕様も登録済みですので、設定すれば開発者ポータルで開発者向けに公開できます。 (開発者ポータルではAPI Tokenの発行までできるようでした。すごいですね。)

APIプロキシへの拡張についても少し触れてみます。 作ったAPIプロキシを選択して、DEVELOPのメニューを開くと 比較的直感的な拡張用の画面がでてきます。

「+ Step」と書かれたボタンをクリックすることで、ヘッダ情報の追加や、JSONからXMLへの変換など、プロキシのカスタマイズができます。


例えば、XMLにしか対応していないWebAPIをJSONにも対応させたりといった機能拡張が可能です。


最後にapigeeはBaaSも提供している為、そちらについても少しだけ触れておきます。 こちらを利用することでデータストアもapigeeだけで賄えるようになります。これにより、apigeeだけでサービスの提供が可能になります。

どんなサービスが提供できるのかはサンプルプロジェクトが公開されているのでこちらを見るのが一番早いと思います。

サービスの構成図

https://github.com/apigee/streetcartsより引用

いろいろ出来るサービスほど、どう使えばいいのかの理解に時間がかかってしまうので、具体的な使用例があると助かりますね。

まとめ

apigeeの本領は既存のバックエンドに対して、リバースプロキシとして利用することでの付加価値だと思いますが、BaaSも併せて利用することで、サーバーレスアーキテクチャ+データストアまでapigeeだけで実現できるのも魅力的だと思いました。

こういった便利なサービスを知っておくことで、開発で取れる選択肢が増えていくと思いますので、条件に合わせて最適なサービスを提案できるように、よく準備しておこうと思います。

ISANA.NET SOCIAL MEDIA

Copyright © 2019 isana.net

cropped-cropped-cropped-logo_s-1-1.png