次の方法で共有


クイック スタート: NoSQLでデータ API ビルダーを使用する

このクイック スタートでは、NoSQL エミュレーターのAzure Cosmos DBを対象とする一連のデータ API ビルダー構成ファイルを作成します。

[前提条件]

ヒント

または、すべての開発者の前提条件が既にインストールされている GitHub Codespaces でこのクイック スタートを開きます。 自分のAzureサブスクリプションを持ち込むだけです。 GitHubアカウントには、ストレージとコア時間の権利が無償で含まれます。 詳細については、「GitHub アカウントのストレージとコア時間を含むを参照してください。

GitHub Codespacesで開く

Data API Builder CLI をインストールする

nuGet から Microsoft.DataApiBuilder パッケージを.NET ツールとしてインストールします。

  1. を使用して、引数を使用して最新バージョンのをインストールします。

    dotnet tool install --global Microsoft.DataApiBuilder
    

    パッケージが既にインストールされている場合は、代わりに を使用してパッケージを更新します。

    dotnet tool update --global Microsoft.DataApiBuilder
    
  2. 引数を使用して、ツールがと共にインストールされていることを確認します。

    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. 優先するデータ管理環境を使用してローカル データベースに接続します。 たとえば、Visual Studio CodeAzure Databases 拡張機能>などがありますが、これらに限定されません。

    ヒント

    既定のエミュレーター 接続文字列は AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== です。

  6. 新しい データベースと コンテナーを作成します。

  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"
      }
    ]
    

構成ファイルを作成する

DAB CLI を使用してベースライン構成ファイルを作成します。 次に、現在の資格情報を使用して開発構成ファイルを追加します。

  1. このスキーマ コンテンツを使用して 、schema.gql という名前の新しいファイルを作成します。

    type Author @model {
      id: ID!
      firstName: String!
      middleName: String
      lastName: String!
    }
    

    この例では、 は 引数を指定しません。 を省略すると、DAB は GraphQL 型名 () をエンティティ名 () にマップします。 名前は正確に一致する必要があり、大文字と小文字が区別されます。

  2. を使用して一般的な構成ファイルを作成します。 エミュレーターの既定の接続文字列を使用して、--connection-string 引数を追加します。

    dab init --database-type "cosmosdb_nosql" --host-mode "Development" --cosmosdb_nosql-database bookshelf --graphql-schema schema.gql --connection-string "AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
    
  3. を使用して エンティティを追加します。

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

ローカル データベースを使用して API をテストする

次に、Data API Builder ツールを起動して、開発中に構成ファイルがマージされていることを検証します。

  1. を使用してツールを実行し、エンティティの 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]
    

    ヒント

    この例では、アプリケーションはポート でで実行されています。 実行中のアプリケーションのアドレスとポートが異なる場合があります。

  3. graphQL エンドポイントに移動するには、 に移動し、この操作を実行します。

    GraphQL に対してクエリを実行する前に、ルート エンドポイント () を開いて起動を検証できます。 正常な応答には、 、 、 などのフィールドが含まれます。

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

    ヒント

    この例では、URL は 。

    このクイックスタートでブラウザのナビゲーションを利用して Nitro を開きます。 運用モードでは、 へのブラウザー ナビゲーション用に Nitro は表示されません。

次のステップ

Quickstart: Azure