検索
  • Koichi Tsuji

Google Cloud Business Application Platform - Apigee 編 🔥




長く開催されていたGoogle Cloud Next 20: Next OnAir も終了したようです。🔚


Appsheetが関係するGoogle Cloud Business Application Platformに関するセッションのコンテンツも早速Upされているようですので、見逃された方は、こちらから。リンク


Cloud Nextでは広範な話題が取り上げられるため全体像が掴みにくいですが、GCPの概要を俯瞰的に「スケッチブック」に纏めてくれているサイトがありましたので感謝とともに

リンクをシェアします。


Google Cloud Next 20の全体俯瞰図(スケッチ)はこちら⬇️。




インフラ、デーアアナリティックス、Cloud AI、セキュリティ。。。 といった大分類。その中でアップシートはBusiness Application Platformの項目に。


Apigeeを利用して外部のリソース・データと接続・連携。Appsheetでユーザーエクスペリエンスやビジネスロジックを考慮した業務アプリを開発。「おしゃれ」ですね。APIによるデータ・アプリ連携に留まらず、Appsheet Automationと呼称されるモジュールで外部のアプリケーションの各種タスクを操作。Appsheet Automationのベータリリースも待たれますが、まずは、Apigeeをアップシートのデータソースとして指定・利用するための機能が早速Betaリリースされました。👍


Appsheet ホームページへのリンク



Apigeeはこれまで利用した実績もなくゼロからの学習が必要となりますが、初の接続トライアルを実施してみましたので、その報告です。2016年にGoogleはApigeeを買収していたそうですが、エンジニア向けのプロダクトでもあり、これまで一般ユーザーによる認知レベルは正直低かったものと思います(私もその一人)が、今後、Google Cloud Business Platformの一翼を担い、注目度が確実に増していくだろう商品と見ています。


では、ApigeeのセットアップとAppsheetとの連携トライアル。🏁


テストに当たり、まず公表されている無料のAPIを借用。超シンプルなAPIで、GET リクエストを出すと足元の為替レート💰(ベース通貨はユーロ)を返してくれるAPIです。


https://exchangeratesapi.io/


APIって? 🤔 という方も多いと思いますが、超簡単に話を整理してしまうと指定されたURLに呼び出しをかけると「何か」を返してきてくれるのが基本的なAPIです。試しにこのAPIのEndpointといわれるURLはこちらですが、このURLをブラウザーで開いてみてください。


https://api.exchangeratesapi.io/latest


{"rates":{"CAD":1.5567,"HKD":9.1428,"ISK":162.2,"PHP":57.167,"DKK":7.4396,"HUF":361.16,"CZK":26.747,"AUD":1.6152,"RON":4.86,"SEK":10.408,"IDR":17501.07,"INR":86.861,"BRL":6.2117,"RUB":88.6075,"HRK":7.5418,"JPY":123.38,"THB":36.801,"CHF":1.0742,"SGD":1.6039,"PLN":4.4579,"BGN":1.9558,"TRY":8.9037,"CNY":7.9861,"NOK":10.7238,"NZD":1.7533,"ZAR":19.2673,"USD":1.1797,"MXN":24.8461,"ILS":4.0382,"GBP":0.9153,"KRW":1383.16,"MYR":4.8822},"base":"EUR","date":"2020-09-17"}


上のようなテキストデータがブラウザーに表示されるはずです。これはJSON形式のテキストデータと呼ばれるもので、APIで取り扱われるデータの基本構造です。いまのアプリ開発では、こういったAPIといわれるデータや通信を扱う部分、俗にバックエンドといわれる部分を開発するとともに、実際にアプリの操作画面などのいわゆるフロント部分の開発を両輪としてアプリ開発が進められています。従い、当然にアプリ開発には多くの時間と労力が必要とされるわけです。


では、APIGEEとAPPSHEETはこの世界に何をもたらしてくれるのか? ⁉️


APIは、一般に世界共通の形式・仕様とされているOPENAPIスペック・仕様に合わせて構築されています。但し、現実世界をみれば、このOpenApiスペックに当てはまらない構造のAPIも多く存在するのが実態。APIをベースにアプリ内でそのデータを消費しよう!となるとデータの構造を変更したりしなくてはならず、バックエンドの作業が多く発生するなど開発のスピードが低下する一つの要因となってしまいます。バックエンドのエンジニアがコーディングしなければならないからです。こういったAPIのデータ構造の変更やセキュリティー機能の追加云々といった作業をApigeeのプラットフォームが支援してくれる。基本はノーコードで。


Apigee単体を取り上げればそういったツールです。既存のAPIを自らの望むスペックに変更。もしくは、ゼロからAPIを構築する際に役立つServiceですが、一般のアプリユーザー、もしくはアップシートというノーコードツールが対象とするユーザー・マーケットでは馴染みがない、というかこんな話をされても全く分からないという世界に分類されてしまうと思います。


本題に戻りますと、Apigeeはアップシートでのアプリ開発にあたりどんなベネフィットをもたらしてくれるのか? 


これまでバックエンドのエンジニア、もしくはフロント・バックエンド双方を操れるいわゆるフルスタックのエンジニアさんの専業分野であるバックエンドの構築をApigeeを利用することにより簡単に実装できてします。仮にAPIが存在しているようなアプリケーションやサービスがあるのであれば、Apigeeで独自APIをノーコードで作成。そちらをAppsheetのデータソースとして指定することで、あたかもスプレッドシートにデータがあるかのような状態で瞬時にアプリを構築出来てしまうのです。


前述の為替レートのAPIを例にアップシートからAPIGEE経由で接続。




データソースは、新たに設定したAPIGEEのAPI。こちらをデータソースとして自動でテーブルが作成され、簡単なViewも表示。すごい!👍🏻


といってもまだまだ良く分からないと思います。では、Apigeeのコネクターが出来る前までであれば、同じアプリを開発するためにはどのようなアプローチであったか。その手法は無限にあるかもしれませんが、例えばの話として一つの手法をベースにお話しします。


まず、APIから呼び出した結果返されるデータを「格納」するために、Google App Scriptでコーディング。Google SheetのAPIを利用し、この為替レートのAPIを呼び出して、データをGoogle Spreadsheetに保存するためのファンクションを開発。また、データが適宜・適時更新されるように関数が自動で走るようにスケジューリング。このシートをアップシートから読み込みアプリ化。