다음을 통해 공유


빠른 시작: NoSQL에서 데이터 API 작성기 사용

이 빠른 시작에서는 Azure Cosmos DB for NoSQL 에뮬레이터를 대상으로 하는 데이터 API 작성기 구성 파일 집합을 빌드합니다.

사전 요구 사항

또는 모든 개발자 필수 구성 요소가 이미 설치된 GitHub Codespaces에서 이 빠른 시작을 엽니다. 사용자 고유의 Azure 구독을 가져오기만 하면 됩니다. GitHub 계정에는 비용 없이 스토리지 및 코어 시간의 자격이 포함됩니다. 자세한 내용은 포함된 스토리지 및 GitHub 계정의 코어 시간을 참조하세요.

GitHub Codespaces에서 열기

Data API Builder CLI 설치

Microsoft.DataApiBuilder NuGet에서 패키지를 .NET 도구로 설치합니다.

  1. 인수를 사용하여 의 최신 버전을 Microsoft.DataApiBuilder 설치하는 데 --global 사용합니다dotnet tool install.

    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 StudioVisual Studio Code 대한 Azure Databases 확장이 있지만 이에 국한되지 않습니다.

    에뮬레이터의 기본 연결 문자열 입니다AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;.

  6. bookshelf 데이터베이스 및 authors 컨테이너를 Create.

  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. 이 스키마 콘텐츠와 함께 schema.graphql이라는 새 파일을 Create.

    type Author @model {
      id: ID!
      firstName: String!
      middleName: String
      lastName: String!
    }
    
  2. 를 사용하여 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==;"
    
  3. 를 사용하여 Author 엔터티를 dab add추가합니다.

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

로컬 데이터베이스를 사용하여 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. 이 작업을 탐색하고 실행하여 GraphQL 엔드포인트로 /graphql 이동합니다.

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

    이 예제에서 URL은 입니다 https://localhost:5000/graphql. 웹 브라우저를 사용하여 이 URL로 이동할 수 있습니다.

다음 단계