Visual Studio Code 用の MSSQL 拡張機能には 、データ API ビルダー用の統合 UI が含まれているため、構成ファイルを書き込んだり Visual Studio Code から離れたりすることなく、SQL データベース テーブルの REST、GraphQL、MCP エンドポイントを作成できます。 公開するテーブルの選択、CRUD アクセス許可の構成、API の種類の選択、生成された構成のプレビュー、データ API ビルダーを利用したローカル バックエンドのデプロイを、すべてビジュアル インターフェイスから行うことができます。
ヒント
データ API ビルダーは現在プレビュー段階であり、フィードバックに基づいて変更される可能性があります。 GitHub ディスカッションのコミュニティに参加して、アイデアを共有したり、問題を報告したりできます。
Important
この機能には、コンテナーのデプロイに対する SQL 認証のみのサポートや制限付きデータ型の互換性など、既知の制限があります。 デプロイする前に 、既知の制限 事項と 既知の問題 を確認してください。
特徴
データ API ビルダーの統合には、次の機能があります。
- API エンドポイントとして公開するデータベース エンティティ (テーブル) を、折りたたみ可能なグループ化でスキーマ別に整理して選択します。
- 作成、読み取り、更新、および削除 (CRUD) アクセス許可をエンティティごとに個別に構成します。
- 生成する API の種類 (REST、GraphQL、MCP、または任意の組み合わせ) を選択します。
- カスタム REST パス、カスタム GraphQL 型名、承認ロールなど、高度なエンティティ設定を構成します。
- 読み取り専用の [定義] パネルで、生成されたデータ API ビルダーの JSON 構成をプレビューします。
- 前提条件の自動チェックを使用して、Docker コンテナーとしてデータ API ビルダーをローカルにデプロイします。
- 組み込みの Simple Browser を使用して、Visual Studio Code で API を直接実行するテストを行います。
- GitHub Copilot チャットを使用して、自然言語プロンプトを使用してエンティティを構成します。
前提条件
データ API ビルダーを使用する前に、次の要件が満たされていることを確認します。
- Visual Studio Code 用の MSSQL 拡張機能がインストールされています。 インストール手順については、 Visual Studio Code の MSSQL 拡張機能の概要を 参照してください。
- アクティブなデータベース接続は、MSSQL 拡張機能を介して確立されます。 接続手順については、「 クイック スタート: Visual Studio Code の MSSQL 拡張機能を使用してデータベースに接続してクエリを実行する」を参照してください。
- Docker Desktop がコンピューターにインストールされ、実行されています (ローカルデプロイに必要)。
- (省略可能)GitHub Copilot と GitHub Copilot Chat 拡張機能は、AI 支援エンティティ構成用にインストールされます。
オープンデータAPIビルダー
データ API ビルダー構成ビューは、次の 2 つのエントリ ポイントから開くことができます。
オブジェクト エクスプローラーから: データベース ノードを右クリックし、[ Build Data API (Preview)]\(データのビルド API (プレビュー)\) を選択します。...
スキーマ デザイナーから: デザイン API ボタン (ツール バーの右上隅にあるボタン) を選択するか、左側のパネルで [バックエンド ] アイコンを選択します。
データ API ビルダーの構成ビューが開き、データベース エンティティ、API の種類のオプション、および構成コントロールが表示されます。
エンティティの選択
エンティティ選択ビューには、接続されているデータベースのすべてのテーブルがスキーマ別にグループ化されて一覧表示されます。
- 各スキーマ行は折りたたみ可能であり、有効になっているエンティティの数を示すカウント バッジが表示されます (例: "3/5")。
- スキーマ レベルのチェック ボックスをオンにして、そのスキーマ内のすべてのエンティティを切り替えます。 このチェック ボックスでは、トライステート選択 (すべて、なし、または混合) がサポートされます。
- 各エンティティ行が表示されます:有効化チェックボックス、エンティティ名、ソーステーブル、CRUDチェックボックス、設定ボタン。
- エンティティを無効にすると、その行が淡色表示され、CRUD のチェックボックスと設定ボタンが無効になります。
上部の フィルター ボックス を使用して、名前、スキーマ、またはソース テーブルでエンティティを検索します。 フィルターでは大文字と小文字が区別されず、フィルタリングされた結果に基づいて有効なカウントが更新されます。
アクセス許可と API の種類を構成する
CRUD アクセス許可
各エンティティの [ 作成]、[ 読み取り]、[ 更新]、および [削除 ] チェック ボックスを個別に切り替えます。 ヘッダー レベルの CRUD チェック ボックスは、有効なすべてのエンティティに対してそのアクションを切り替え、トライステート選択をサポートします。
API の種類の選択
構成ビューの上部で、生成する API の種類を選択します。
- REST API: テスト用の Swagger UI を使用して REST エンドポイントを生成します。
- GraphQL: Nitro GraphQL プレイグラウンドを使用して GraphQL エンドポイントを生成します。
- MCP (プレビュー): モデル コンテキスト プロトコル エンドポイントを生成します。
- すべて: すべての API の種類を選択または選択解除します。
少なくとも 1 つの API の種類を選択します。
高度なエンティティ構成
エンティティ行の歯車アイコンを選択して、[ 高度なエンティティ構成] ダイアログを開きます。ここで、次の構成を行うことができます。
- エンティティ名: API ルートと応答で使用される名前 (既定値はテーブル名)。
- 承認ロール: 匿名 (認証不要) と 認証済み (ユーザー認証が必要) を切り替えます。
-
カスタム REST パス: 既定の
api/entityNameパスの省略可能なオーバーライド。 - カスタム GraphQL 型: 既定の GraphQL 型名の省略可能なオーバーライド。
[ 変更の適用] を選択して構成を保存するか、[ キャンセル] を 選択して破棄します。
プレビュー構成
ツール バーの [ 構成の表示 ] ボタンを選択して、構成ビューの下部にある [定義 ] パネルを開きます。 このパネルには、生成されたデータ API ビルダー JSON 構成ファイルが読み取り専用形式で表示されます。
[定義] パネル:
- 現在のエンティティの選択、API の種類、詳細設定を反映します。
- UI と GitHub Copilot チャットとの同期を維持します。いずれかの場所で行われた変更によって、プレビューが直ちに更新されます。
- 構成出力に有効なエンティティのみが含まれます。
- 選択した API の種類に基づいて、REST、GraphQL、および MCP ランタイム セクションを表示します。
[ エディターで開く ] を選択すると、完全な Visual Studio Code エディター タブで構成が表示されます。[ コピー] を選択して構成をクリップボードにコピーします。
Docker を使用してローカルにデプロイする
データ API ビルダーは、ローカル Docker コンテナーとしてデプロイします。 展開ウィザードを使用すると、次のプロセスを実行できます。
ツール バーの [ デプロイ ] ボタンを選択します。
[ DAB コンテナーのデプロイ] ダイアログが開き、ローカル コンテナーのデプロイについて説明します。 次へを選択します。
Docker の準備 画面では、前提条件チェックが順番に実行されます。
- Docker のインストールの確認: Docker がシステムにインストールされていることを確認します。
- Docker Desktop の起動: Docker Desktop が実行されていることを確認します。
- Docker エンジンの確認: Docker エンジンの準備ができているかどうかを確認します。
すべてのチェックが完了したら、[ 次へ ] を選択して続行します。
[コンテナーの設定] 画面が表示されます。
- コンテナー名: Docker コンテナーの省略可能な名前 (自動生成された既定値が提供されます)。
-
ポート: API を公開するポート (既定値:
5000)。 - コンテナーは、アクティブなデータベース接続からの接続文字列を再利用します。
[ コンテナーの作成] を選択します。
デプロイでは、イメージのプル、コンテナーの開始、準備状況の確認という 3 つの手順が順番に実行されます。
デプロイが正常に完了すると、有効になっている各 API の種類のエンドポイント URL がウィザードに表示されます。
[API の種類] エンドポイント アクション REST http://localhost:{port}/apiSwagger を表示 すると Swagger UI が開きます GraphQL http://localhost:{port}/graphqlNitro が GraphQL プレイグラウンドを開く MCP http://localhost:{port}/mcpVS Code に追加 して、MCP サーバー構成を .vscode/mcp.jsonに書き込みます。任意のリンクを選択して、Visual Studio Code 組み込みの Simple Browser でテスト インターフェイスを開きます。
次の例は、Visual Studio Code で REST エンドポイントを直接テストするための Swagger UI を示しています。
次の例は、GraphQL クエリと変更をテストするための Nitro GraphQL プレイグラウンドを示しています。
実行中の API をテストする
デプロイ後、Visual Studio Code 組み込みの Simple Browser を使用して、デプロイの完了ダイアログから直接 API をテストできます。
REST API
[ Swagger の表示 ] を選択して Swagger UI を開きます。これは、REST エンドポイントを探索およびテストするための対話型ビジュアル インターフェイスです。 使用可能なエンティティの参照、要求スキーマと応答スキーマの表示、API 呼び出しの直接実行を行うことができます。
データ API ビルダーは、有効になっている各エンティティに対して次の REST エンドポイントを生成します。
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET |
/api/{entity} |
エンティティのすべてのレコードを一覧表示する |
GET |
/api/{entity}/{primaryKey}/{value} |
主キーで 1 つのレコードを取得する |
POST |
/api/{entity} |
新しいレコードを作成します |
PUT |
/api/{entity}/{primaryKey}/{value} |
既存のレコードを置き換える |
PATCH |
/api/{entity}/{primaryKey}/{value} |
レコードの特定のフィールドを更新する |
DELETE |
/api/{entity}/{primaryKey}/{value} |
レコードを削除する |
REST エンドポイントの詳細については、「 データ API ビルダー REST API」を参照してください。
GraphQL
Nitro を選択して Nitro GraphQL プレイグラウンドを開きます。このプレイグラウンドでは、GraphQL クエリと変更を対話形式で記述およびテストできます。
GraphQL エンドポイントの詳細については、「 Data API builder GraphQL API」を参照してください。
MCP
MCP サーバー構成を書き込むには、.vscode/mcp.json に [VS Code に追加] を選択します。 この構成により、Data API Builder エンドポイントが Visual Studio Code 内で MCP サーバーとして使用できるようになります。 その後、GitHub Copilot などの AI ツールは、Data API Builder API を使用してデータベースと対話できます。
Visual Studio Code での MCP の詳細については、「Visual Studio Code での MCP サーバーの使用」を参照してください。
ターミナル テスト
ターミナルからエンドポイントをテストすることもできます。
REST API:
特定のエンティティからすべてのレコードを取得します。
curl http://localhost:{port}/api/{entityName}
新しいレコードを作成します (作成アクセス許可が有効になっている場合)。
curl -X POST http://localhost:{port}/api/{entityName} \
-H "Content-Type: application/json" \
-d '{"Column1": "Value1", "Column2": "Value2"}'
GraphQL:
curl -X POST http://localhost:{port}/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ {entityName} { items { Column1 Column2 } } }"}'
ヒント
{port}をデプロイ時に構成したポートに置き換えます (既定値: 5000)。
GitHub Copilot の統合
自然言語を好む開発者向けに、GitHub Copilot は Data API Builder エクスペリエンスに組み込まれています。 ツール バーの [チャット ] ボタンを選択して、データ API ビルダー構成コンテキストをスコープとした GitHub Copilot チャット セッションを開きます。 GitHub Copilot と UI の同期が維持されます。チャットを通じて行われた変更はすぐに UI に反映され、その逆も同様です。
プロパティの例を次に示します:
"Enable all SalesLT entities for read operations""Expose only the Customer and Product tables with full CRUD permissions""Set all entities in the dbo schema to read-only""Disable the BuildVersion and ErrorLog entities""Can you also enable MCP for the Data API builder API?"
次の例は、GitHub Copilot がエンティティを有効にし、チャット プロンプトを使用して CRUD アクセス許可を構成する方法を示しています。
次の例は、Data API Builder 構成で MCP エンドポイントを有効にする GitHub Copilot を示しています。
注
GitHub Copilot 統合では、GitHub Copilot と GitHub Copilot Chat 拡張機能をインストールしてサインインする必要があります。 セットアップ手順については、「 GitHub Copilot のセットアップ」を参照してください。
既知の制限
- テーブルのみ: 構成 UI ではテーブルのみがサポートされます。 現時点では、ビューとストアド プロシージャはデザイナーでは使用できません。
- Docker Desktop が必要: ローカルデプロイでは、Docker Desktop をインストールして実行する必要があります。
-
SQL 認証のみ: ローカル Docker コンテナーでは、対話型サインイン フロー用のブラウザーを開くことができないため、
ActiveDirectoryInteractiveなどの Microsoft Entra ID 認証方法はサポートされていません。 現在の接続でサポートされていない認証の種類が使用されている場合は、拡張機能に通知が表示されます。 - Microsoft Fabric の SQL データベースはサポートされていません。Microsoft Fabric の SQL データベースでは、Microsoft Entra 認証のみが必要であり、SQL 認証はサポートされていません。 ローカル コンテナーのデプロイには SQL 認証が必要であるため、Fabric の SQL データベースに対するデプロイは実行可能なシナリオではありません。
- 主キーが必要: データ API ビルダーによって公開されるすべてのテーブル エンティティには、データベース レベルで定義された主キー制約が必要です。 主キーのないテーブルでは、起動時にデータ API ビルダー エンジンが失敗します。
- AI によって生成された出力を確認する必要があります。GitHub Copilot によって、正しくない構成または最適ではない構成が生成される可能性があります。 デプロイする前に、生成された構成を常に確認してください。
既知の問題
-
サポートされていない SQL Server データ型: データ API ビルダーは、特定の SQL Server データ型をシリアル化できません。 サポートされていない型の列を含むテーブルでは、起動時にエンジンが失敗する可能性があります。 サポートされていない種類には、
geography、geometry、hierarchyid、rowversion、sql_variant、およびxmlが含まれます。 拡張機能は、影響を受けるエンティティを警告アイコンでマークし、展開用に選択されないようにします。 データ型のサポートに関する最新情報については、 GitHub の問題 #3181 を参照してください。 - 対話型の Microsoft Entra ID 認証は、コンテナーのデプロイではサポートされていません。データ API ビルダー コンテナーは、対話型の Microsoft Entra 認証を実行できません。 対話型の Microsoft Entra ID メソッドを使用した接続は、通知によってブロックされます。 詳細については、 GitHub の問題 #3246 を参照してください。
- MCP はプレビュー段階です。Data API Builder の MCP エクスペリエンスは現在プレビュー段階です。 詳細については、「 データ API ビルダー MCP プレビュー」を参照してください。
フィードバックとサポート
アイデアやフィードバックがある場合、またはコミュニティに参加したい場合は、 https://aka.ms/vscode-mssql-discussionsでディスカッションに参加してください。 バグを報告するには、 https://aka.ms/vscode-mssql-bugにアクセスしてください。 新しい機能を要求するには、 https://aka.ms/vscode-mssql-feature-requestに移動します。