Поделиться через


Построитель API данных (предварительная версия)

Расширение MSSQL для Visual Studio Code включает интегрированный пользовательский интерфейс для построителя API данных, поэтому вы можете создавать конечные точки REST, GraphQL и MCP для таблиц базы данных SQL без написания файлов конфигурации или выхода Из Visual Studio Code. Вы можете выбрать таблицы для отображения, настроить разрешения CRUD, выбрать типы API, просмотреть предварительный вид созданной конфигурации и развернуть локальную серверную часть, основанную на Data API Builder, все из визуального интерфейса.

Снимок экрана: пользовательский интерфейс построителя данных с списком сущностей и флажком CRUD в Visual Studio Code.

Подсказка

Конструктор API данных в настоящее время находится в предварительной версии и может измениться в зависимости от отзывов. Присоединитесь к сообществу в GitHub Discussions , чтобы поделиться идеями или сообщить о проблемах.

Это важно

Эта функция имеет известные ограничения, включая поддержку только проверки подлинности SQL для развертывания контейнеров и совместимости с ограниченным типом данных. Ознакомьтесь с известными ограничениями и известными проблемами перед развертыванием.

Features

Интеграция конструктора API данных предоставляет следующие возможности:

  • Выберите сущности базы данных (таблицы), чтобы экспортировать как конечные точки API, организованные по схеме с возможностью сворачивания групп.
  • Настройте разрешения Создать, Читать, Обновить и Удалить (CRUD) независимо для каждой сущности.
  • Выберите типы API для создания: REST, GraphQL, MCP или любое сочетание.
  • Настройте дополнительные параметры сущности, включая пользовательские пути REST, имена типов GraphQL и роли авторизации.
  • Предпросмотр созданной конфигурации JSON в построителе API данных в панели определения в режиме только для чтения.
  • Развертывание конструктора API данных локально в качестве контейнера Docker с автоматическими проверками обязательных условий.
  • Проверьте выполнение API непосредственно в Visual Studio Code с помощью встроенного простого браузера.
  • Используйте чат GitHub Copilot для настройки сущностей с помощью запросов естественного языка.

Необходимые условия

Перед использованием построителя API данных убедитесь, что выполнены следующие требования:

Конструктор API открытых данных

Представление конфигурации Data API Builder можно открыть из двух входных точек:

  • В обозревателе объектов: щелкните правой кнопкой мыши узел базы данных и выберите "Создать API данных" (предварительная версия)....

    Снимок экрана: представление конфигурации построителя данных с списком сущностей и флажки CRUD в Visual Studio Code.

  • В конструкторе схем: нажмите кнопку API конструктора (кнопка в правом верхнем углу панели инструментов) или щелкните значок серверной части на левой панели.

    Снимок экрана: кнопка

Откроется представление конфигурации построителя данных, отображающее сущности базы данных, параметры типа API и элементы управления конфигурацией.

Выберите сущности

В представлении выбора сущностей перечислены все таблицы из подключенной базы данных, сгруппированные по схеме.

  • Каждая строка схемы является сворачиваемой и отображает значок счетчика, указывающий, сколько сущностей включено (например, "3/5").
  • Установите флажок уровня схемы, чтобы переключить все сущности в этой схеме. Флажок поддерживает выбор три состояния: все, нет или смешанные.
  • В каждой строке сущности отображаются следующие элементы: флажок включения, имя сущности, исходная таблица, флажки CRUD и кнопка настроек.
  • Отключение сущности затеняет её строку и отключает флажки CRUD и кнопку настроек.

Используйте поле фильтра вверху для поиска сущностей по имени, схеме или исходной таблице. Фильтр не учитывает регистр, а счетчик включенных элементов обновляется на основе отфильтрованных результатов.

Снимок экрана: поле фильтра сущностей с термином поиска, фильтрующим список сущностей.

Настройка разрешений и типов API

Разрешения CRUD

Установите флажки "Создать", "Чтение", "Обновить" и "Удалить " для каждой сущности. Флажки CRUD уровня заголовка включают и отключают данное действие для всех включенных сущностей и поддерживают выделение трех состояний.

Выбор типа API

В верхней части представления конфигурации выберите типы API для создания:

  • REST API: создает конечные точки REST с помощью пользовательского интерфейса Swagger для тестирования.
  • GraphQL: создает конечные точки GraphQL с помощью игровой площадки Nitro GraphQL.
  • MCP (предварительная версия): создает конечные точки протокола контекста модели.
  • Все: выбирает или отменяет выбор всех типов API.

Выберите хотя бы один тип API.

Снимок экрана: REST API, GraphQL, MCP и все флажки в верхней части представления конфигурации построителя данных.

Расширенная конфигурация сущностей

Щелкните значок шестеренки в строке сущности, чтобы открыть диалоговое окно "Расширенная конфигурация сущностей ", где можно настроить:

  • Имя сущности: имя, используемое в маршрутах и ответах API (по умолчанию — имя таблицы).
  • Роль авторизации. Переключение между анонимным (без обязательной проверки подлинности) и проверкой подлинности (требуется проверка подлинности пользователя).
  • Пользовательский путь REST: необязательное переопределение для пути по умолчанию api/entityName.
  • Пользовательский тип GraphQL: необязательное переопределение имени типа GraphQL по умолчанию.

Выберите Применить изменения, чтобы сохранить конфигурацию, или Отмена, чтобы отменить.

Снимок экрана диалогового окна

Просмотр конфигурации

Нажмите кнопку "Вид конфигурации" на панели инструментов, чтобы открыть панель "Определение " в нижней части представления конфигурации. На этой панели показан созданный файл конфигурации JSON построителя данных в режиме только для чтения.

Панель определения:

  • Отражает текущий выбор сущностей, типы API и дополнительные параметры.
  • Остается в синхронизации с пользовательским интерфейсом и чатом GitHub Copilot: изменения, внесенные в любом из мест, немедленно обновляют предпросмотр.
  • В выходные данные конфигурации включаются только активированные сущности.
  • Отображает разделы среды выполнения REST, GraphQL и MCP на основе выбранных типов API.

Выберите "Открыть в редакторе" , чтобы просмотреть конфигурацию на полной вкладке редактора Visual Studio Code. Выберите "Копировать", чтобы скопировать конфигурацию в буфер обмена.

Скриншот панели

Локальное развертывание с помощью Docker

Построитель API данных развертывается как локальный контейнер Docker. Мастер развертывания поможет вам выполнить следующие действия.

  1. Нажмите кнопку "Развернуть " на панели инструментов.

  2. Откроется диалоговое окно "Развертывание контейнера DAB" , описывающее развертывание локального контейнера. Нажмите кнопку Далее.

    Снимок экрана: диалоговое окно

  3. Экран "Подготовка к работе с Docker" выполняет проверки готовности к предварительным требованиям последовательно:

    • Проверка установки Docker: проверяет, установлен Docker в вашей системе.
    • Запуск Docker Desktop: убедитесь, что Docker Desktop запущен.
    • Проверка подсистемы Docker: проверяет, готов ли подсистема Docker.

    Скриншот проверки перед установкой Docker, выполняемой последовательно.

    Нажмите кнопку "Далее ", чтобы продолжить после завершения всех проверок.

    Снимок экрана: проверка готовности Docker завершена успешно.

  4. Откроется экран "Параметры контейнера" :

    • Имя контейнера: необязательное имя контейнера Docker (предоставляется автоматическое создание по умолчанию).
    • Порт: порт для предоставления API (по умолчанию: 5000).
    • Контейнер повторно использует строку подключения из активного подключения к базе данных.

    Выберите "Создать контейнер".

    Снимок экрана: экран

  5. Развертывание выполняет три шага последовательно: извлечение образа, запуск контейнера и проверка готовности.

    Снимок экрана: ход развертывания, показывающий шаги по созданию контейнера.

  6. При успешном развертывании мастер отображает URL-адреса конечных точек для каждого включенного типа API:

    Тип API Конечная точка Действие
    REST http://localhost:{port}/api Просмотр Swagger открывает пользовательский интерфейс Swagger
    GraphQL http://localhost:{port}/graphql Nitro открывает игровую площадку GraphQL
    MCP http://localhost:{port}/mcp Добавление в VS Code записывает конфигурацию сервера MCP в .vscode/mcp.json

    Выберите любую ссылку, чтобы открыть интерфейс тестирования во встроенном простом браузере Visual Studio Code.

    Снимок экрана экрана завершения развертывания, показывающий, что контейнер Data API Builder работает с URL-адресами конечных точек.

    В следующем примере показан пользовательский интерфейс Swagger для тестирования конечных точек REST непосредственно в Visual Studio Code:

    Снимок экрана: пользовательский интерфейс Swagger для конечных точек REST в простом браузере Visual Studio Code.

    В следующем примере показана площадка Nitro GraphQL для тестирования запросов и мутаций GraphQL:

    Снимок экрана: игровая площадка Nitro GraphQL в простом браузере Visual Studio Code.

Тестирование запущенного API

После развертывания вы можете протестировать API непосредственно из диалогового окна завершения развертывания с помощью встроенного в Visual Studio Code браузера.

REST API

Выберите "Просмотреть Swagger ", чтобы открыть пользовательский интерфейс Swagger, интерактивный визуальный интерфейс для изучения и тестирования конечных точек REST. Вы можете просматривать доступные сущности, просматривать схемы запросов и ответов и выполнять вызовы API напрямую.

Построитель API данных создает следующие конечные точки REST для каждой включенной сущности:

Метод Конечная точка Описание
GET /api/{entity} Список всех записей сущности
GET /api/{entity}/{primaryKey}/{value} Получение одной записи по первичному ключу
POST /api/{entity} Создание новой записи
PUT /api/{entity}/{primaryKey}/{value} Замена существующей записи
PATCH /api/{entity}/{primaryKey}/{value} Обновление определенных полей записи
DELETE /api/{entity}/{primaryKey}/{value} Удалить запись

Дополнительные сведения о конечных точках REST см. в разделе REST API построителя API данных.

GraphQL

Выберите Nitro , чтобы открыть игровую площадку Nitro GraphQL, где можно создавать и тестировать запросы GraphQL и изменения в интерактивном режиме.

Дополнительные сведения о конечных точках GraphQL см. в разделе строителя данных API GraphQL.

MCP

Выберите «Добавить в VS Code», чтобы записать конфигурацию сервера MCP в .vscode/mcp.json. Эта конфигурация делает конечную точку построителя данных доступной как сервер MCP в Visual Studio Code. Затем средства ИИ, такие как GitHub Copilot, могут взаимодействовать с базой данных с помощью API построителя данных.

Дополнительные сведения о MCP в Visual Studio Code см. в статье "Использование серверов MCP в Visual Studio Code".

Тестирование терминала

Кроме того, можно протестировать конечные точки из терминала:

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. Нажмите кнопку Chat на панели инструментов, чтобы открыть сеанс чата GitHub Copilot, охваченный контекстом конфигурации Data API builder. GitHub Copilot и пользовательский интерфейс остаются в синхронизации: изменения, внесенные через чат, немедленно отражаются в пользовательском интерфейсе и наоборот.

Ниже приведены некоторые примеры запросов:

  • "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 с помощью запроса чата:

Скриншот GitHub Copilot, где сущности включены и разрешения CRUD настроены с помощью запроса на естественном языке в чате конструктора API данных.

В следующем примере показано, как GitHub Copilot включает конечные точки MCP для конфигурации построителя данных:

Снимок экрана GitHub Copilot, где в чате конструктора API данных с помощью запроса на естественном языке включаются конечные точки MCP.

Замечание

Интеграция GitHub Copilot требует установки и входа в расширения GitHub Copilot и GitHub Copilot Chat. Инструкции по настройке см. в разделе "Настройка GitHub Copilot".

Известные ограничения

  • Только таблицы: пользовательский интерфейс конфигурации поддерживает только таблицы. В настоящее время представления и хранимые процедуры недоступны в конструкторе.
  • Требуется Docker Desktop: для локального развертывания требуется установить и запустить Docker Desktop.
  • Только проверка подлинности SQL: локальные контейнеры Docker не поддерживают методы проверки подлинности Microsoft Entra ID, например ActiveDirectoryInteractive, поскольку среда контейнера не может открыть браузер для интерактивного потока входа. Расширение отображает уведомление, если текущее подключение использует неподдерживаемый тип проверки подлинности.
  • База данных SQL в Microsoft Fabric не поддерживается: база данных SQL в Microsoft Fabric требует исключительно проверки подлинности Microsoft Entra и не поддерживает проверку подлинности SQL. Так как для локального развертывания контейнеров требуется SQL-аутентификация, развертывание в базе данных SQL в Fabric не является целесообразным сценарием.
  • Обязательный первичный ключ: каждая сущность таблицы, предоставляемая с помощью построителя данных, должна иметь ограничение первичного ключа, определенное на уровне базы данных. Таблицы без первичного ключа приводят к сбою движка построителя API данных при запуске.
  • Выходные данные, созданные искусственным интеллектом, следует проверить: GitHub Copilot может создавать неправильные или неоптимальные конфигурации. Перед развертыванием всегда просматривайте созданные конфигурации.

Известные проблемы

  • Неподдерживаемые типы данных SQL Server: построитель данных не может сериализовать определенные типы данных SQL Server. Таблицы, содержащие столбцы с неподдерживаемыми типами, могут привести к сбою модуля при запуске. Неподдерживаемые типы включают geography, , geometry, hierarchyid, rowversionsql_variantи xml. Расширение помечает затронутые сущности значком предупреждения и предотвращает их выбор для развертывания. Последние сведения о поддержке типов данных см. в статье о проблеме GitHub #3181.
  • Интерактивная проверка подлинности Идентификатора Microsoft Entra не поддерживается для развертывания контейнера. Контейнер построителя данных не может выполнять интерактивную проверку подлинности Microsoft Entra. Подключения с помощью интерактивных методов идентификатора Microsoft Entra блокируются с уведомлением. Дополнительные сведения см. в статье о проблеме GitHub #3246.
  • MCP находится в режиме предварительной версии: в настоящее время опыт работы с MCP для построителя API данных находится в предварительной версии. Дополнительные сведения см. в разделе "Построитель api данных MCP Preview".

Отзывы и поддержка

Если у вас есть идеи, отзывы или хотите взаимодействовать с сообществом, присоединитесь к обсуждению https://aka.ms/vscode-mssql-discussions. Чтобы сообщить об ошибке, посетите сайт https://aka.ms/vscode-mssql-bug. Чтобы запросить новую функцию, перейдите в раздел https://aka.ms/vscode-mssql-feature-request.