(訳者註:2024年5月10日、最新の情報に更新)
MySQL REST Service
MySQL REST Service (MRS) によって、MySQLデータへの高速で安全なHTTPSアクセスができるようになります。MRSはMySQL Routerの機能として提供され、蓄積されたデータを操作できる、RESTfulなWebサービスの公開機能を持つMySQLのソリューションです。
MySQL Shell for VS Code を使うと、MRS の設定とアプリケーション・データの RESTful Web サービスの作成を直感的に行えます。GUIは完全にVS Codeに統合され、ドキュメントも対話的に組み込まれていますので、とても簡単にデータベースオブジェクトを公開できます。
MySQLデータをJSONドキュメントとして提供することが、これまで以上に容易となっており、これは Progressive Web Apps(PWA)で用いると大きな力を発揮するでしょう。
MySQLデータへの高速で安全なHTTPSアクセス
MySQL HeatWaveのインスタンス、オンプレミスのMySQL環境、どちらでも利用可能です
RESTful Webサービス
- テーブル、ビュー、プロシージャの自動REST化
- {JSON} による応答
- 結果のページング
- 開発者サポート (GUI、CLI、API)
MySQL Shell for VS Code
- MRS管理用のGUIフロントエンド
- RESTfulなWebサービス作成
- 対話的なドキュメント
- CLIとスクリプト実行のサポート
ユーザ管理機能の搭載
- 一般的なOAuth2認証をサポート
- ロール、グループ、階層管理の使用
- ユーザー管理GUI
- CLIとスクリプト実行のサポート
Progressive Web Apps (PWA)
JSONドキュメントをProgressive Web Apps(PWA)やモバイルアプリに配信する場合、MySQL REST Serviceは最適な選択肢と言えます。一般的なOAuth2認証サービスへや、行レベルのセキュリティなど、高度な機能に対応しており、PWAの構築にかかる労力を大きく削減できます。
MySQL Shell for VS CodeにはMRS Notesと呼ばれるPWAのデモアプリが同梱されており、その中ではMySQL REST Serviceの多くの機能が紹介されています。このアプリは、VS Codeで直接デプロイし、MySQL Routerにアップロードして配信できます。

MRSアーキテクチャの概観
MRSは次に挙げる要素の組み合わせで構築されます。
- アプリケーションのデータを配信するMySQ環境 (OCI上のMySQL HeatWave、MySQL InnoDB Cluster/ClusterSet、スタンドアロンのMySQL Server)
- MRSの設定と管理が行え、選んだデータベーススキーマオブジェクトのRESTful Webサービスを可能にするMySQL ShellとMySQL Shell for VS Code
- RESTful WebサービスでJSONデータを配信するMySQL Router
以下の図が典型的なMRSのアーキテクチャを示しています。
MRSの設定とMRSサービスの作成
MySQLインスタンスをMRS用に設定するには、MySQL Shell for VS Code拡張を開いて接続しているデータベースを右クリックし、ポップアップメニューからConfigure Instance for MySQL REST Service Supportを選びます。この手順により、RESTサービスに関するすべてのメタデータ情報が格納される、MRSメタデータスキーマが作成されます(訳者註:下記動画中で生成されているMySQL REST Serviceにあたります)。
MRS設定の完了後、新しいRESTサービスを追加できます。接続しているデータベースを開き、先ほど作られたMySQL REST Serviceを右クリックし、Add REST Service…を選びます。

上記の手順の代わりに、MySQL Shellを用いて以下の手順を行っても、同じことができます。
MySQL > JS > mrs.configure() MySQL Rest Data Service configuration. Checking MRS metadata schema and version... Creating MRS metadata schema... The MRS metadata is well configured, no changes performed. MySQL > JS > mrs.add.service() Please enter the context path for this service [/mrs]: Please enter the host name for this service (e.g. None or localhost) [None]: 1 HTTP 2 HTTPS Please select the protocol(s) the service should support [HTTP,HTTPS]: 2 Comments: 1 Default Service Options for Development 2 No options 3 Custom options Please select how to initialize the options [Default Service Options for Development]: 1 Service /mrs created successfully.
MRSサービスへのデータベースオブジェクトの追加
MySQL Shell for VS Codeを使うと、DATABASE CONNECTIONSビューでMRS サービスに追加したいスキーマを右クリックし、ポップアップメニューからAdd Schema to REST Service…を選ぶだけで、MRSサービスにMySQLデータベーススキーマを追加できます。このスキーマを認証なしで一般公開するには、Requires Authenticationのチェックを外してください。OKをクリックすると、スキーマがMRSサービスに追加されます。
続いて、MySQLテーブルをMRSサービスに追加します。DATABASE CONNECTIONSビューでテーブルを右クリックし、ポップアップメニューからAdd Database Object to REST Service …を選択します。必要なCRUD操作が選択されていることを確認した上で(デフォルトではREADが選択されています)、再度Requires Authenticationのチェックを外して、テーブルをRESTオブジェクトとして一般公開します(訳者註:認証なしで公開する設定ですので、不要なCRUD操作は選択しないようにしてください)。

MySQL Routerのブートストラップと開始
MySQL Shell for VS CodeエクステンションにはMySQL Routerが同梱されており、MySQL Routerのブートストラップと起動に使用することができます。MySQL REST Serviceのツリー項目を右クリックし、Start Local MySQL Router Instanceを選びます。これにより、未完了のブートストラッププロセスがある場合は自動的に開始されます。
DB接続のパスワードとランダムなJSON Web Token (JWT) シークレットを入力します。同じMySQL環境に複数のMySQL Routerを導入する場合、すべてのMySQL Routerインスタンスで常に同じJWTシークレットが与えられる必要がありますので、注意してください。
MySQL Routerが起動されると、すぐにVS Codeターミナルにデバッグ出力が表示されます。

RESTエンドポイントにWebブラウザからアクセスする
RESTサービスの作成とMySQL Routerの起動が完了したので、WebブラウザでRESTエンドポイントにアクセスできるようになりました。
注:ChromiumベースのブラウザではJSON Formatter、SafariではJSON PeepなどのWebブラウザプラグインをインストールすると、JSONドキュメントを整形された美しい表示にできます。
RESTオブジェクトを右クリックし、Open REST Object Request Path in Web Browserを選択します。RESTサービスにホスト名が指定されていない場合は、https://localhost:8443がホスト部として自動的に追加され、デフォルトのWebブラウザが開き、GETリクエストへのJSONレスポンスが表示されます。
JSONの結果を見ると、実際のデータに加えて、ナビゲーション用のリンクが含まれていることがわかるでしょう。これを使うと、表示されたデータの中を素早く移動できます。
- リクエストパスに主キーの値を追加すると (例: /1) 、結果を単一のデータセットにフィルタします。
- クエリパラメータとしてoffsetとlimitを追加すると、データセット全体をページングできます。デフォルトのページサイズはRESTスキーマとRESTオブジェクトの設定で指定できます。
- MRSはJSONベースのクエリ言語をサポートしており、結果セットをフィルタできます。詳細はドキュメントをご確認ください。

組み込みドキュメントの確認
MySQL REST Serviceの詳細については、MySQL Shell for VS Codeに同梱されるMRS Developer’s Guideを確認してください。
接続しているデータベースまたはMySQL REST Serviceのツリー項目を右クリックし、Browse the MySQL REST Service Documentationを選択すると、MRS Developer’s Guideが VS Code内に直接表示されます。そこでは対話的なリンクによって、MySQL Shell for VS Codeと直接対話できます。

まとめ
MySQL REST Service は、MySQL 開発者に対して、RESTful Web サービスおよび JSON ドキュメントを操作できる新しい強力な機能のセットを提供します。このサービスは、MySQL HeatWave や MySQL InnoDB Cluster/ClusterSet など、あらゆる MySQL ソリューションと密接に統合されています。
MySQL REST Serviceは、現在プレビュー版をご利用いただけます。以下のダウンロードボタンを通じて取得してください。
MySQL Router のサーバーデプロイ用パッケージをダウンロードするには、labs.mysql.com にアクセスし、お使いのプラットフォーム用の MySQL Router MRS Preview パッケージを選択してください。新しい MySQL Router MRS Preview パッケージをインストールする前に、MySQL Router パッケージをすべて削除してください。.zip または .tar.gz パッケージを使用して手動でインストールする場合は、システムの PATH 変数に MySQL Router の bin ディレクトリを追加してください。
MySQL Router MRS Preview のソースは labs.mysql.com に、MySQL Shell for VS Code のソースは github.com にあります。

