テンプレートの準備からサンプルの実行確認までを実演
続いて飯島氏は、4月開催の「REST APIコンテスト」で使用した「RESTサーバ作成用テンプレート」を用いて、実行確認とコンテスト応募までの流れを紹介した。IRISの独自スクリプト、ネイティブ言語である「ObjectScript」を使用することで、データが存在する場所でRESTサーバが作成できる。
まずテンプレートで準備されるのは、下図の緑のラインで囲まれた範囲だ。まずDockerでIRISのイメージをPullしてコンテナを開始する。その時、微細な初期設定も行うが、今回は「RESTディパッチクラス」と呼ばれるロジックのサンプルコードがあらかじめおかれた。また不変であるのが一般的だが、この中では簡単に試せるように「Sample.Person」というテーブル定義でデータが入れられるよう準備されている。
図ではデータベースの中にテーブルとコードが同居していることを不思議に思われるかもしれないが、データも定義、ロジックも全てデータベースに収めるのがIRISの標準構造だ。また、データベースを利用するにはVSCodeなどと同様、ワークスペース相当のもの、仮想の作業の環境が必要になる。IRISの場合、ネームスペースといい、データベース名と同じ「IRISAPP」と名付けられる。
この時点でサンプルコード、データの格納場所がそろい、さまざまなテストができるが、さらにRESTクライアントから接続する部分が必要になる。なおテンプレートにRESTクライアントは含まれていないため、コンテストでは新たに作成するのもよし、またサーバー側の機能をより開発する、新しいものを登録するのでも構わない。
実演ではRESTクライアントとしてPostmanのツールを使用した。RESTでアクセスするためのベースURLがあり、IRISに接続してURLがきたらRESTサーバの機能が動く仕組みになっている。初期の設定の中で、Webアプリケーション定義ができる場所があり、その中でベースURLが来たらディスパッチクラスが動くように設定されている。そのため、コンテナを開始して環境が立ち上がったら、すぐに準備しているサンプルコードを動かせるというわけだ。
そしてRESTディスパッチクラスを改良するためには、IDEが必要になる。その場合はVisual Studio Codeでつなげ、ソースコードを修正する必要がある。標準ではInterSystemsのネイティブ言語「ObjectScript」の操作ができないため、Extensionからの追加が必要となる。
飯島氏はこれらを実演するため開発用テンプレートのコンテナを開始し、準備されているサンプルコードがIRISで動くまでをテストしてみせた。
InterSystems開発者コミュニティの日本語版が公開
こうしてテンプレートを活用し、そのままコンテナを開始してプログラミングを行った後は、リモートGitにソースコードをPushしてInterSystems開発者コミュニティでアカウント作成を行い、Open Exchangeに移動してGitにPushしたアプリケーションを登録し、画面をリロードして応募ボタンを押すとコンテストへの応募が完了する。
飯島氏は「コンテナの利用により、データベースだけでなく必要な開発言語やモジュールを含めた開発環境が簡単に準備できる。コンテストに限らず、開発/テスト環境についても、コンテナを再利用すれば準備時間が大幅に短縮でき、本当にやりたいことに専念する時間が増える」と語り、「ぜひとも、いつものデータベースの1つとしてInterSystems IRISを活用してほしい」と強調した。
また7月16日には、開発者同士の交流の場である「InterSystems開発者コミュニティ」の日本語版が公開されている。インターシステムズからのイベント情報や技術情報などが提供される他、コンテストの告知はもちろん、「はじめてのInterSystems IRIS」としてセルフラーニングも用意されている。現在、英語版/スペイン語版が公開されていて、2020年6月時点で7177名の登録があり、日本語版が公開されることでますます増えることが予想される。
飯島氏は「プログラミングコンテストなどを通じて、世界の開発者とつながることができる。ぜひともコミュニティに参加し、コンテストに応募をしていただきたい」と語り、セッションを終えた。