APigeeの調査をすることになったのですが、あまり日本語での資料がなかったので、2016年10月時点で調べたことをまとめておきます。
※2016年11月にリニューアルが行われたようですが、画面遷移時にバグるみたいで、いきなりサインアウトするなどします。旧デザインを選択できるので、そちらで操作を行った方が良さそうです。
※本記事においては簡単なAPi Gatewayの作成をしますが、アクティベーションに時間がかかるので、初めての方は先にアカウント作成とアクティベーションをしてから記事を読まれた方が良いかも知れません。
前段の説明
そもそも APi Gatewayとは
- Web APi:httpの通信を利用してサーバ機能を利用・データをやり取りする
クライアントはサーバにリクエストし、サーバはクライアントにレスポンスを返す。
例:ブラウザ(クライアント)から、connpassという勉強会管理サイトのAPiエンドポイントにアクセスする。すると、connpass(サーバサイド)はキーワードを含む勉強会一覧データを返す。
http://connpass.com/api/v1/event/?keyword=python
- Web APi Gateway:上のクライアント〓サーバの間に入って仲介する
つまり、クライアントはGatewayにリクエストし、Gatewayはサーバにリクエストをする。サーバはGatewayにレスポンスを返し、Gatewayはクライアントにレスポンスを返す。ということになります。
<気が向いたら図を入れます>
Gatewayを挟むメリット
データ変換、セキュリティ向上、エンドポイントの集約、アクセス分析などなどをGatewayに持たせることができる。
一方で、何でもかんでも無理に集約するとドツボにはまる・・・らしい。
APi Gatewayサービスのリスト
いろんなIT企業がAPi Gatewayサービスを提供しています。
数年前から"APi経済圏"なる単語があったと思うので、現状に至る過程を知りたい方はbingって下さい。
http://www.bing.com/search?q=API%E7%B5%8C%E6%B8%88%E5%9C%8F
- IBM : http://ibm.com/software/products/ja/api-connect
- Microsoft : https://azure.microsoft.com/ja-jp/services/api-management/
- Amazon : https://aws.amazon.com/jp/api-gateway/
- Google : https://apigee.com/api-management/#/homepage
「なんでGoogleのAPi Gatewayが"Apigee"なんだ?」とお思いかも知れませんが、2016年9月に買収を発表しました。
https://cloudplatform.googleblog.com/2016/09/Google-to-acquire-apigee.html
本記事ではこのApigeeを少し、ねじってみようと思います。
Apigeeの基本情報
- Apigee:会社名
- Apigee Edge:メインサービス名?
他にApigee senseなどのプロダクトがある模様です。。
値段
従量課金制ではないので他社サービスとの比較が難しく、単純にあるがままのプランを抜粋して転記します。
2016年11月時点での情報となりますので、必ず最新情報を参照するようにして下さい!
https://apigee.com/about/pricing/apigee-edge-pricing-features
プラン名 | Start | Pro (for small and medium-sized businesses ) | Enterprise |
---|---|---|---|
Price | $300/月 | $2250/月 | 要問合わせ |
API Calls Limit | 200万call/月 | 800万call/月 | ーーー |
Number of API Proxies | 5 | 25 | ーーー |
使いたい機能がEnterpriseでしか提供されていない場合は、もはやEnterprise一択ですね。
ApigeeでAPi Gatewayを作ってみる
フリートライアルがある模様です。特にクレジットカード登録など不要でした。
アカウント作成
-
アカウント情報の入力
Usernameが組織名として使われるので注意。Company Nameは適当なもので大丈夫でした。(というか、古い会社名が入っていたりします。。)
-
「Create account」ボタンを押すと登録メールアドレスにアクティベーションURLが送られてくるので、そのURLをクリックしてアカウントをアクティベートしてください。
-
ダッシュボード?的な画面が表示されるので、"Create & Manage APIs " をクリック。
- ここで、 "Free Apigee accounts are limited to one organization on the API Platform." という意味深な文が出てきますが、それ以上の無料プランの詳しい情報は得られません。「Activate」をクリックして下さい。
数分待つことになります。もしくは強制的にトップに飛ばされます
- サービスのアクティベーションが終わったら、もう一度"Create & Manage APIs "をクリックしてください。サービスのダッシュボードページが開きます。
※わかりにくい表現で恐縮です。まずアカウント自体のアクティベーション、すぐ上のステップでAPi管理機能のアクティベーションをしたことになります。
登録したメアドのメールボックスを確認していただくと、先ほど自分で指定したOrganizationについてのメールが届いていると思うので、内容を確認し、メール内のURLをクリックしてください。
APi Gatewayの作成
-
旧デザインで試します。サービスのダッシュボードページに表示されてるバーの"Get Started"をクリックして下さい。
-
"Build a Proxy"ページにて、 most commonが選択されたままの状態で「Next」ボタンをクリック。
このNextボタン、というかページデザインが変なところで切れており、画面サイズによっては上手く表示されないようです。表示されない場合はスクロールしたり、ブラウザの表示領域をズームアウトしてみてください。
-
作成するApiの設定を入力します。ひとまずversionなどのことは置いておきます。
- Proxy Name: ApigeeのエンドポイントURLを設定します。hogehogeなど入れましょう。Pathも同じです。
- Existing APi: ターゲットとなるAPiのエンドポイントを指定します。
- RSSもいけるようです。今回は野球のニュース↓でも見ましょう。Firefox推奨で、ブラウザから開いてみてください。
- http://rss.rssad.jp/rss/nikkansports/baseball/atom.xml
- コピーして、Existing APiに貼り付けます。
- 注意:あくまで、10回程度アクセスするだけです。負荷をかけるようなことをしませんし、してはいけません。
-
また、Production環境、test環境の両方を作成します。あとは特に詰まらずにAPiを公開出来るかと思います。
-
上部バー「Dashboard」の隣の「APIs」から、自分が作成したAPiのサマリーページを開くことが出来ます。API Proxiesというリストに表示されるはずです。(何もしなくても、自動遷移するかも?)
エンドポイントに設定したURLをブラウザ(Firefox推奨)からアクセスしてみて、自分が設定したターゲットの情報が出て来れば作成成功です。表示されているURLをクリックするだけです。
-
これで、ブラウザ(クライアント)とニュースサイト(サーバ)の間にAPi Gatewayを挟むことが出来ました。
上部バーの「Analytics」から、APiのアクセス状況などを見ることが出来ます。時間の単位が大きいと、いまアクセスした分が表示されないかも知れません。その場合は、DayをHourに変えたり刻んでみてください。
右上にあるプルダウンから「test」を選ぶと、test環境のAPiの情報を見ることが出来ます。
Production環境の場合は「prod」です。
APi Gatewayでデータ編集
-
APiのサマリーページの上の方に「OVERVIEW / DEVELOP/ TRACE/ PERFORMANCE」というタブがあるので、「DEVELOP」をクリックします。
-
2つの矢印図がド真ん中にあるのですが、右に向かっているのがクライアントからのリクエストで、左に向かっているのがサーバからのレスポンスを意味しています。
RSSから返ってきているレスポンスはXML形式なので、これをJSON形式に変更します。左に向かってる矢印の端に「+STEP」と描かれている四角がありますが、それをクリックすると様々な選択肢が出てきます。そこから「XML to JSON」を選択します。画面左上の青い「Save」ボタンを押すと、今やった操作が保存・反映されます。
-
改めて、自分が作ったAPiのURLをブラウザ(Firefox推奨)からアクセスしてみてください。XMLだったデータが、JSON形式に変換されているのが分かると思います。
このような形で、簡単にXMLからJSONへの変換をすることが出来ました。
RSSのデータをいじるということで、何となく Yahoo! Pipesを思い出しました…
本記事ではここまで。また最新の情報を調べて色々とねじってみる予定です。