背景
10年以上前にGoogleがImage Chartsというサービスを提供していました。これはURLにパラメーターを指定すると円グラフなどの各種グラフ画像が表示されるもので、当時はグラフ表示のライブラリがあまり整備されていなかったこともあり、多くのユーザーを獲得していたと思います。その後、JavaScriptを利用したグラフ表示が主流となり、GoogleのImage Chartsは廃止されることになりました。
私が取り組んできたWebアプリの開発でも、グラフ表示はJavaScriptを利用することが多かったです。しかし、フロントエンドの表示にJavaScriptの利用が前提となってくると、フロントエンドのフレームワークとグラフ表示のJavaScriptを組み合わせて利用する必要があります。このあたりをうまく扱えるようにするライブラリやテクニックももちろんあるのですが、ちょっとしたグラフであれば画像として表示したいと思うことがありました。
開発
Mark2 Analyticsはマークシートシステム Mark2 と連携して動作する学力調査データ分析システムです。Makr2 AnalyticsはRails 7にアップデートしているところで、Rails 7で導入されたHotwireとグラフを表示するJavaScriptライブラリをどのように共存させるかを検討していました。これまでのシステムの利用状況から、Image ChartsのようなAPIを作成して画像ファイルとしてグラフを表示することにしました。
APIの管理はAzure API Management、グラフ画像の作成はAzure Functionsを採用することにしました。GoogleのImage ChartsではURLにパラメーターを指定すればグラフ画像を取得できたのですが、それだとクラウドのリソース管理ができないので、APIと通信する際にはAzure API Managementでアクセスを制御する方式としました。
まずは自分たちにとって必要な機能を整備していき、一定の品質に達したところで一般公開しようと考えています。