共用方式為


快速入門:搭配 NoSQL 使用數據 API 產生器

在本快速入門中,您會建置一組數據 API 產生器組態檔,以以適用於 NoSQL 的 Azure Cosmos DB 模擬器為目標。

必要條件

提示

或者,在 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. 使用 自變數確認工具已安裝dotnet tool list--global

    dotnet tool list --global
    

設定本機資料庫

從執行本機模擬器開始。 然後,您可以使用範例數據植入新的容器。

  1. 從 Docker Hub 取得容器映像的最新複本mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest

    docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
    
  2. 發佈埠 8081 和埠範圍 10250-10255 來啟動 Docker 容器。

    docker run \
        --publish 8081:8081 \
        --publish 10250-10255:10250-10255 \
        --detach \
        mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
    
  3. 下載模擬器的自我簽署憑證

    curl -k https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
    
  4. 使用適用於Linux的 Bash 步驟或適用於 Windows 的 PowerShell 步驟來安裝自我簽署憑證。

    sudo cp ~/emulatorcert.crt /usr/local/share/ca-certificates/
    sudo update-ca-certificates
    
    certutil -f -addstore "Root" emulatorcert.crt
    
  5. 使用您慣用的數據管理環境連線到本機資料庫。 範例包括但不限於:Azure Data Studio適用於 Visual Studio Code 的 Azure Databases 擴充功能

    提示

    模擬器的預設 連接字串 為 AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;

  6. Create 新的bookshelf資料庫和authors容器。

  7. 使用這個基本 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 基準組態檔。 然後,使用您目前的認證新增開發組態檔。

  1. Create 具有此架構內容的新檔案 schema.graphql

    type Author @model {
      id: ID!
      firstName: String!
      middleName: String
      lastName: String!
    }
    
  2. 使用 Create 一般組態檔dab init--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==;"
    
  3. 使用 dab add新增 Author 實體。

    dab add Author --source "authors" --permissions "anonymous:*"
    

使用本機資料庫測試 API

現在,啟動 Data 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]
    

    提示

    在此範例中,應用程式正在埠 5000localhost執行。 執行中的應用程式可能會有不同的位址和埠。

  3. 流覽至 /graphql 並執行這項作業,以移至 GraphQL 端點。

    query {
      authors {
        items {
          id
          firstName
          lastName
        }
      }
    }
    

    提示

    在這裡範例中,URL 會是 https://localhost:5000/graphql。 您可以使用網頁瀏覽器流覽至此 URL。

後續步驟