5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

APi Gateway Platform Apigee (1) XMLからJSONへのデータ変換

Last updated at Posted at 2016-11-08

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

「なんで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を作ってみる

フリートライアルがある模様です。特にクレジットカード登録など不要でした。

アカウント作成

apigee_n1.png

  • アカウント情報の入力
    Usernameが組織名として使われるので注意。Company Nameは適当なもので大丈夫でした。(というか、古い会社名が入っていたりします。。)
    apigee_n2.png

  • 「Create account」ボタンを押すと登録メールアドレスにアクティベーションURLが送られてくるので、そのURLをクリックしてアカウントをアクティベートしてください。

  • ダッシュボード?的な画面が表示されるので、"Create & Manage APIs " をクリック。

apigee1.png
  • ここで、 "Free Apigee accounts are limited to one organization on the API Platform." という意味深な文が出てきますが、それ以上の無料プランの詳しい情報は得られません。「Activate」をクリックして下さい。

apigee_n3.png

数分待つことになります。もしくは強制的にトップに飛ばされます

  • サービスのアクティベーションが終わったら、もう一度"Create & Manage APIs "をクリックしてください。サービスのダッシュボードページが開きます。

※わかりにくい表現で恐縮です。まずアカウント自体のアクティベーション、すぐ上のステップでAPi管理機能のアクティベーションをしたことになります。
登録したメアドのメールボックスを確認していただくと、先ほど自分で指定したOrganizationについてのメールが届いていると思うので、内容を確認し、メール内のURLをクリックしてください。

APi Gatewayの作成

  • 旧デザインで試します。サービスのダッシュボードページに表示されてるバーの"Get Started"をクリックして下さい。
    apigee_n5.png

  • "Build a Proxy"ページにて、 most commonが選択されたままの状態で「Next」ボタンをクリック。
    このNextボタン、というかページデザインが変なところで切れており、画面サイズによっては上手く表示されないようです。表示されない場合はスクロールしたり、ブラウザの表示領域をズームアウトしてみてください。
    apigee_n6.png

  • 作成する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回程度アクセスするだけです。負荷をかけるようなことをしませんし、してはいけません。

apigee_n7.png

  • アクセスについては制限なし(none)で、CORS headerは今回は取り敢えずチェックいれておきます。
    apigee_n8.png

  • また、Production環境、test環境の両方を作成します。あとは特に詰まらずにAPiを公開出来るかと思います。

  • 上部バー「Dashboard」の隣の「APIs」から、自分が作成したAPiのサマリーページを開くことが出来ます。API Proxiesというリストに表示されるはずです。(何もしなくても、自動遷移するかも?)
    エンドポイントに設定したURLをブラウザ(Firefox推奨)からアクセスしてみて、自分が設定したターゲットの情報が出て来れば作成成功です。表示されているURLをクリックするだけです。
    apigee_n9.png

  • これで、ブラウザ(クライアント)とニュースサイト(サーバ)の間にAPi Gatewayを挟むことが出来ました。
    上部バーの「Analytics」から、APiのアクセス状況などを見ることが出来ます。時間の単位が大きいと、いまアクセスした分が表示されないかも知れません。その場合は、DayをHourに変えたり刻んでみてください。
    右上にあるプルダウンから「test」を選ぶと、test環境のAPiの情報を見ることが出来ます。
    Production環境の場合は「prod」です。
    apigee_n10.png

APi Gatewayでデータ編集

  • APiのサマリーページの上の方に「OVERVIEW / DEVELOP/ TRACE/ PERFORMANCE」というタブがあるので、「DEVELOP」をクリックします。

  • 2つの矢印図がド真ん中にあるのですが、右に向かっているのがクライアントからのリクエストで、左に向かっているのがサーバからのレスポンスを意味しています。
    RSSから返ってきているレスポンスはXML形式なので、これをJSON形式に変更します。左に向かってる矢印の端に「+STEP」と描かれている四角がありますが、それをクリックすると様々な選択肢が出てきます。そこから「XML to JSON」を選択します。画面左上の青い「Save」ボタンを押すと、今やった操作が保存・反映されます。
    apigee_n11.png

  • 改めて、自分が作ったAPiのURLをブラウザ(Firefox推奨)からアクセスしてみてください。XMLだったデータが、JSON形式に変換されているのが分かると思います。

このような形で、簡単にXMLからJSONへの変換をすることが出来ました。
RSSのデータをいじるということで、何となく Yahoo! Pipesを思い出しました…

本記事ではここまで。また最新の情報を調べて色々とねじってみる予定です。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?