快速入门:将数据 API 生成器与 NoSQL 配合使用
在本快速入门中,你将生成一组数据 API 生成器配置文件,以 Azure Cosmos DB for NoSQL 模拟器为目标。
先决条件
- Docker
- .NET 8
- 数据管理客户端
- 如果未安装客户端, 请安装 Azure Data Studio
提示
或者,在已安装所有开发人员先决条件的 GitHub Codespaces 中打开本快速入门。 只需自带 Azure 订阅即可。 GitHub 帐户包括免费存储和核心小时数的权利。 有关详细信息,请参阅 GitHub 帐户包含的存储和核心小时数。
安装数据 API 生成器 CLI
Microsoft.DataApiBuilder
从 NuGet 安装包作为 .NET 工具。
使用
dotnet tool install
安装具有--global
参数的Microsoft.DataApiBuilder
最新版本。dotnet tool install --global Microsoft.DataApiBuilder
注意
如果包已安装,你将改用
dotnet tool update
更新包。dotnet tool update --global Microsoft.DataApiBuilder
使用
--global
参数验证工具是否已安装dotnet tool list
。dotnet tool list --global
配置本地数据库
首先运行本地模拟器。 然后,可以使用示例数据为新容器设定种子。
从 Docker Hub 获取容器映像的最新副本
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
。docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
通过发布端口 8081 和端口范围 10250-10255 启动 docker 容器。
docker run \ --publish 8081:8081 \ --publish 10250-10255:10250-10255 \ --detach \ mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
下载模拟器的自签名证书
curl -k https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
使用适用于 Linux 的 Bash 步骤或适用于 Windows 的 PowerShell 步骤安装自签名证书。
sudo cp ~/emulatorcert.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates
certutil -f -addstore "Root" emulatorcert.crt
使用首选数据管理环境连接到本地数据库。 示例包括但不限于:Azure Data Studio 和适用于 Visual Studio Code 的 Azure 数据库扩展。
提示
模拟器的默认连接字符串为
AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;
。Create新的
bookshelf
数据库和authors
容器。使用此基本 JSON 数据为容器设定种子。
[ { "id": "01", "firstName": "Henry", "lastName": "Ross" }, { "id": "02", "firstName": "Jacob", "middleName": "A.", "lastName": "Hancock" }, { "id": "03", "firstName": "Sydney", "lastName": "Mattos" }, { "id": "04", "firstName": "Jordan", "lastName": "Mitchell" }, { "id": "05", "firstName": "Victoria", "lastName": "Burke" }, { "id": "06", "firstName": "Vance", "lastName": "DeLeon" }, { "id": "07", "firstName": "Reed", "lastName": "Flores" }, { "id": "08", "firstName": "Felix", "lastName": "Henderson" }, { "id": "09", "firstName": "Avery", "lastName": "Howard" }, { "id": "10", "firstName": "Violet", "lastName": "Martinez" } ]
提示
用于设定数据种子的方法在很大程度上取决于数据管理工具。 对于 Azure Data Studio,可以将此 JSON 数组保存为 .json 文件,然后使用 导入 功能。
创建配置文件
使用 DAB CLI Create基线配置文件。 然后,使用当前凭据添加开发配置文件。
Create一个名为 schema.graphql 的新文件,其中包含此架构内容。
type Author @model { id: ID! firstName: String! middleName: String lastName: String! }
使用
dab init
Create典型的配置文件。--connection-string
使用模拟器的默认连接字符串添加 参数。dab init --database-type "cosmosdb_nosql" --host-mode "Development" --cosmosdb_nosql-database bookshelf --graphql-schema schema.graphql --connection-string "AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;"
使用
dab add
添加 Author 实体。dab add Author --source "authors" --permissions "anonymous:*"
使用本地数据库测试 API
现在,启动数据 API 生成器工具,验证在开发过程中是否合并了配置文件。
使用
dab start
运行该工具并为实体创建 API 终结点。dab start
该工具的输出应包含用于导航到正在运行的 API 的地址。
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
提示
在此示例中,应用程序在端口 5000 上运行
localhost
。 正在运行的应用程序可能具有不同的地址和端口。导航到 并运行此操作,转到
/graphql
GraphQL终结点。query { authors { items { id firstName lastName } } }
提示
在此示例中,URL 为
https://localhost:5000/graphql
。 可以使用 Web 浏览器导航到此 URL。