快速入门:将数据 API 生成器与 MySQL 配合使用

在本快速入门中,你将生成一组数据 API 生成器配置文件,以面向本地 MySQL 数据库。

先决条件

提示

或者,在已安装所有开发人员先决条件的 GitHub Codespaces 中打开本快速入门。 只需自带 Azure 订阅即可。 GitHub 帐户包括免费存储和核心小时数的权利。 有关详细信息,请参阅 GitHub 帐户包含的存储和核心小时数

在 GitHub Codespaces 中打开

安装数据 API 生成器 CLI

Microsoft.DataApiBuilder从 NuGet 安装包作为 .NET 工具。

  1. 使用 dotnet tool install 安装具有 --global 参数的Microsoft.DataApiBuilder最新版本。

    dotnet tool install --global Microsoft.DataApiBuilder
    

    注意

    如果包已安装,你将改用 dotnet tool update更新包。

    dotnet tool update --global Microsoft.DataApiBuilder
    
  2. 使用 --global 参数验证工具是否已安装dotnet tool list

    dotnet tool list --global
    

配置本地数据库

首先配置并运行本地数据库。 然后,可以使用示例数据为新容器设定种子。

  1. 从 Docker Hub 获取容器映像的最新副本mysql:8

    docker pull mysql:8
    
  2. 通过设置密码并发布端口 3306 来启动 docker 容器。 将 替换为 <your-password> 自定义密码。

    docker run \
        --publish 3306:3306 \
        --env "MYSQL_ROOT_PASSWORD=<your-password>" \
        --detach \
        mysql:8
    
  3. 使用首选数据管理环境连接到本地数据库。 示例包括但不限于:MySQL WorkbenchAzure Data StudiomySQL shell for Visual Studio Code

    提示

    如果对 Docker Linux 容器映像使用默认网络,则连接字符串可能是 Server=localhost;Port=3306;Uid=root;Pwd=<your-password>;。 将 替换为 <your-password> 之前设置的密码。

  4. Create新bookshelf数据库,并将该数据库用于剩余查询。

    CREATE DATABASE IF NOT EXISTS bookshelf;
    
    USE bookshelf;
    
  5. Create新dbo.authors表,并使用基本数据为表设定种子。

    CREATE TABLE IF NOT EXISTS authors
    (
        id INT NOT NULL PRIMARY KEY,
        first_name VARCHAR(100) NOT NULL,
        middle_name VARCHAR(100),
        last_name VARCHAR(100) NOT NULL
    );
    
    INSERT INTO authors VALUES
        (01, 'Henry', NULL, 'Ross'),
        (02, 'Jacob', 'A.', 'Hancock'),
        (03, 'Sydney', NULL, 'Mattos'),
        (04, 'Jordan', NULL, 'Mitchell'),
        (05, 'Victoria', NULL, 'Burke'),
        (06, 'Vance', NULL, 'DeLeon'),
        (07, 'Reed', NULL, 'Flores'),
        (08, 'Felix', NULL, 'Henderson'),
        (09, 'Avery', NULL, 'Howard'),
        (10, 'Violet', NULL, 'Martinez');
    

创建配置文件

使用 DAB CLI Create基线配置文件。 然后,使用当前凭据添加开发配置文件。

  1. 使用 dab initCreate典型的配置文件。 --connection-string使用第一节中的数据库连接字符串添加 参数。 将 替换为 <your-password> 本指南前面设置的密码。 此外,将 Database=bookshelf 值添加到 连接字符串。

    dab init --database-type "mysql" --host-mode "Development" --connection-string "Server=localhost;Port=3306;Database=bookshelf;Uid=root;Pwd=<your-password>;"
    
  2. 使用 dab add添加 Author 实体。

    dab add Author --source "authors" --permissions "anonymous:*"
    
  3. 观察当前 dab-config.json 配置文件。 该文件应包含具有单个实体、REST API 终结点和GraphQL终结点的 API 的基线实现。

使用本地数据库测试 API

现在,启动数据 API 生成器工具,验证在开发过程中是否合并了配置文件。

  1. 使用 dab start 运行该工具并为实体创建 API 终结点。

    dab start
    
  2. 该工具的输出应包含用于导航到正在运行的 API 的地址。

          Successfully completed runtime initialization.
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: <http://localhost:5000>
    info: Microsoft.Hosting.Lifetime[0]
    

    提示

    在此示例中,应用程序在端口 5000 上运行localhost。 正在运行的应用程序可能具有不同的地址和端口。

  3. 首先,通过向 /api/Author发出 GET 请求来手动尝试 API。

    提示

    在此示例中,URL 为 https://localhost:5000/api/Author。 可以使用 Web 浏览器导航到此 URL。

  4. 接下来,导航到 处的 /swaggerSwagger 文档页。

    提示

    在此示例中,URL 为 https://localhost:5000/swagger。 同样,可以使用 Web 浏览器导航到此 URL。

后续步骤