Использование сред файлов конфигурации с помощью построителя API данных
В этом руководстве описаны шаги по выбору среды разработки с помощью файла конфигурации. Файлы конфигурации конечных результатов должны быть достаточно гибкими, чтобы в будущем можно было добавить конфигурацию рабочей базы данных с минимальными изменениями.
Предварительные требования
- Существующая база данных SQL.
- Клиент управления данными
- Если у вас не установлен клиент, установите Azure Data Studio.
- Интерфейс командной строки построителя API данных. Установка интерфейса командной строки
Create таблицу и данные SQL
Create таблицу с вымышленными данными для использования в этом примере сценария.
Подключитесь к серверу SQL Server и базе данных с помощью предпочтительного клиента или средства. Примеры: SQL Server Management Studio, Azure Data Studio и расширение SQL Server для Visual Studio Code.
Create таблицу
Books
со столбцамиid
иname
.DROP TABLE IF EXISTS dbo.Books; CREATE TABLE dbo.Books ( id int NOT NULL PRIMARY KEY, title nvarchar(1000) NOT NULL, [year] int null, [pages] int null ); GO
Вставьте в таблицу четыре строки образца книги
Books
.INSERT INTO dbo.Books VALUES (1000, 'Practical Azure SQL Database for Modern Developers', 2020, 326), (1001, 'SQL Server 2019 Revealed: Including Big Data Clusters and Machine Learning', 2019, 444), (1002, 'Azure SQL Revealed: A Guide to the Cloud for SQL Server Professionals', 2020, 528), (1003, 'SQL Server 2022 Revealed: A Hybrid Data Platform Powered by Security, Performance, and Availability', 2022, 506) GO
Протестируйте данные с помощью простого
SELECT *
запроса.SELECT * FROM dbo.Books
базовый файл конфигурации Create
Create файл базовой конфигурации с помощью ИНТЕРФЕЙСА командной строки DAB.
Create типичный файл конфигурации с помощью
dab init
.dab init --database-type "mssql" --host-mode "Development"
Добавьте сущность Book с помощью
dab add
.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Просмотрите текущий файл конфигурации dab-config.json . Файл должен содержать базовую реализацию API с одной сущностью, конечной точкой REST API и конечной точкой GraphQL.
{ "$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.10.23/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "", "options": { "set-session-context": false } }, "runtime": { "rest": { "enabled": true, "path": "/api", "request-body-strict": true }, "graphql": { "enabled": true, "path": "/graphql", "allow-introspection": true }, "host": { "cors": { "origins": [], "allow-credentials": false }, "authentication": { "provider": "StaticWebApps" }, "mode": "development" } }, "entities": { "Book": { "source": { "object": "dbo.Books", "type": "table" }, "graphql": { "enabled": true, "type": { "singular": "Book", "plural": "Books" } }, "rest": { "enabled": true }, "permissions": [ { "role": "anonymous", "actions": [ { "action": "*" } ] } ] } } }
файл переменных среды Create
Теперь добавьте файл среды для хранения переменных среды для DAB.
- Create файл с именем
.env
в том же каталоге, что и файлы конфигурации ИНТЕРФЕЙСА командной строки DAB.
Примечание
Имя .env
файла, например .gitignore
и .editorconfig
, не имеет имени файла, а только расширение файла. Имя не учитывает регистр, но соглашение имеет нижний регистр.
Добавьте переменную
DAB_ENVIRONMENT
среды со значениемDevelopment
. Кроме того, добавьте переменнуюSQL_DOCKER_CONNECTION_STRING
среды с строка подключения базы данных.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
файл конфигурации среды Create
Наконец, добавьте файл конфигурации разработки с разницей между текущей конфигурацией и требуемой конфигурацией среды.
Создайте файл
dab-config.Development.json
. Добавьте следующее содержимое, чтобы использовать функцию@env()
для заданияconnection-string
значения в среде разработки.{ "$schema": "<https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json>", "data-source": { "database-type": "mssql", "connection-string": "@env('SQL_DOCKER_CONNECTION_STRING')" } }
Сохраните изменения в файлах .env, dab-config.json и dab-config. Development.json файлов.
Тестирование настройки
Используйте для
dab start
проверки правильности запуска средства.dab start
Выходные данные средства должны содержать адрес, используемый для перехода к работающему API.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Совет
В этом примере приложение выполняется
localhost
на порту 5000. У работающего приложения может быть другой адрес и порт.Сначала попробуйте использовать API вручную, отправив запрос GET к
/api/Book
.Совет
В этом примере URL-адрес будет иметь значение
https://localhost:5000/api/Book
. Вы можете перейти по этому URL-адресу в веб-браузере.Затем перейдите на страницу документации Swagger по адресу
/swagger
.Совет
В этом примере URL-адрес будет иметь значение
<https://localhost:5000/swagger
. Опять же, вы можете перейти по этому URL-адресу с помощью веб-браузера.Наконец, попробуйте конечную точку GraphQL, перейдя к
/graphql
и выполнив эту операцию.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Совет
В этом примере URL-адрес будет иметь значение
https://localhost:5000/graphql
. Опять же, вы можете перейти по этому URL-адресу с помощью веб-браузера.