原文:Introducing the MySQL REST Service Component: Now Generally Available

原著者:Miguel Araújo

本記事は、上記の英語記事の一部をAIを使用して日本語に翻訳したものです。翻訳には誤訳や不正確な表現が含まれる可能性があります。内容の確認にあたっては英語原文を参照してください。


MySQL 26.10において、MySQL Server内で直接MRSを実行する、インストール可能なコンポーネントであるMySQL REST Service(MRS)Componentの一般提供開始を発表します。

MRS:MySQL REST Service

多くの最新アプリケーション、いえ、アプリケーションだけでなく、ツール、CLI、CIパイプライン、自動化も、他のシステムとの通信にHTTPとJSONを使用しています。

フロントエンドに集中したい開発者にとって、データベース操作を公開するためだけに別のバックエンドを作るのは負担に感じられるでしょう。開発者はアプリケーションに取り組み、データへのアクセスにはAPIを使いたいのです。

しかし、アプリケーションをデータベースに接続するには、カスタムAPI、認証レイヤー、シリアライズ処理、そして大量の接続用コードが必要になることがよくあります。それらすべてを稼働させ続ける運用上の負担も生じます。やがて、このAPIレイヤー自体が、私たちが保守する実質的なシステムになりかねません。

MRSはそのデータアクセス・レイヤーを提供し、リレーショナル・データからJSONへのマッピング、認証、認可を備えたHTTPS REST APIを通じてMySQLデータを公開します。

顧客が注文を確認する場面を考えてみましょう。アプリケーションには注文の詳細と明細が必要で、適切な顧客だけがアクセスできるようにする必要があります。MRSは、基になるデータをリレーショナル・テーブルに保持したまま、関連データをネストされたJSONドキュメントとして提示できます。公開するフィールド、許可する操作、アクセスできる利用者を選択します。

MRSは、REST APIの開発、提供、利用に必要なツールをまとめて提供します。

  • 開発:MySQL ShellでAPIを定義・管理します。
  • 提供:MRSランタイムがエンドポイントを提供し、受信したHTTPSリクエストを処理します。
  • 利用:アプリケーションは、HTTPSで直接、または生成されたTypeScriptやPythonのSDKを通じてエンドポイントを呼び出します。

アプリケーションのビジネス・ロジックは引き続き開発者が記述しますが、定義したデータベース・アクセス操作はMRSが処理します。

MRSは当初、MySQL Routerの一部として導入されました。MySQL RouterはMRSランタイムをホストし、MySQL Serverに接続してデータベース操作を実行します。この構成では、MySQL ShellがAPIの開発・管理ツールを提供し、MySQL Routerがサービスを実行し、アプリケーションがAPIを利用します。

MySQLがHTTPとJSONに直接対応

MRS Componentは、REST APIを提供するもう1つの方法として、mysqld内での直接実行を可能にします。

MySQL Serverは、MRSをホストするために別のMySQL Routerをデプロイすることなく、アプリケーションのHTTPS APIを提供できます。データベース操作はローカルのサーバー・サービスを通じて実行されるため、別プロセスのMRSランタイムとMySQL間のネットワーク通信を回避できます。

図1:MRS ComponentはMySQL Server内からアプリケーションのREST APIを提供します。

MySQL Server内で動作することで、MRSはサーバーのセキュリティ基盤も利用できます。MRSはMySQLアカウントでユーザーを認証でき、ユーザー・パススルーが有効な場合は、そのユーザーのMySQL権限でデータベース操作を実行できます。MRSのRESTアクセス制御も適用されます。

HTTPSについては、MRSはMySQL Serverの証明書と鍵の設定を初期のデフォルト値として使用します。HTTPSリスナーに別の証明書と鍵を設定することもできます。

システム変数でMRSを構成し、ステータス変数で状態を確認し、MySQL Serverのエラー・ログでメッセージを確認できます。このコンポーネントはサーバーの起動と停止に統合されています。SQL関数を使えば、MySQL Serverを再起動せずにMRSを開始、停止、再起動することもできます。

まとめ

MRSはMySQLデータへのHTTPSアクセスを提供し、アプリケーションにデータを公開するために必要なバックエンド・コードを削減します。Componentを使用すると、RESTサービスがMySQL Server内で動作し、別のMySQL Routerのインストール、構成、管理が不要になります。

続くパート2「MRS Componentを使い始める」では、MRSを構成し、ここで紹介した注文APIを公開し、curlで認証付きリクエストを実行します。注文と明細をネストされたJSONとして取得し、配送メモを更新し、その結果をMySQLで確認します。

ご参加ください

皆様のアプリケーションでMRSがどのように使われているか、ぜひお聞かせください。どのようなAPIを構築していますか。カスタムのバックエンド・コードがまだ必要なのはどの部分ですか。MySQL Community Slackで経験やアイデアを共有してください。

MRS Componentのソース・コードを調べ、改善に貢献することもできます。始め方はコントリビューション・ガイドで説明しています。

不具合と機能の提案

問題を発見した場合や機能の提案がある場合は、GitHubでIssueを作成するか、バグ・レポートを登録してください。

サポートが必要な場合は、サポート・チケットを作成してください。

詳細情報

ドキュメント

ダウンロード

ぜひご活用ください。MySQLをご利用いただき、ありがとうございます。