Azure SQL Database용 데이터 API 작성기 탐색

완료됨

오늘날의 데이터 중심 환경에서 데이터에 효율적으로 액세스하고 조작하는 기능은 기업과 개발자 모두에게 매우 중요합니다. DAB(데이터 API 작성기)는 데이터베이스에 대한 CRUD(만들기, 읽기, 업데이트, 삭제) 작업을 수행하는 사용자 지정 API를 바꿔 Azure SQL Database에 대한 최신 REST 및 GraphQL 엔드포인트를 만드는 강력한 솔루션을 제공합니다.

Azure 데이터 API 작성기는 개발자를 위해 설계된 오픈 소스 도구로, 데이터베이스 개체를 엔드포인트로 노출하는 프로세스를 간소화합니다. Azure SQL, SQL Server, PostgreSQL, Azure Cosmos DB를 포함하되 이에 국한되지 않는 다양한 데이터베이스를 지원합니다. DAB를 사용하면 코드를 작성하지 않고도 추가 비용 없이 안전하고 확장 가능하며 성능이 뛰어난 API를 만들 수 있습니다.

데이터 API 작성기의 모든 구성 요소 간의 관계를 보여 주는 다이어그램.

주요 기능 알아보기

개발 프로세스에서 DAB를 사용하면 많은 이점이 있습니다. 프로젝트 요구 사항에 얼마나 잘 부합하는지 확인하는 데 도움이 되는 몇 가지 주요 장점은 다음과 같습니다.

  • 플랫폼 간 호환성: DAB는 플랫폼 간이어서 모든 클라우드나 온-프레미스 환경에서 실행할 수 있습니다. 관계형 및 NoSQL 데이터베이스를 포함한 여러 백 엔드 데이터 원본을 지원합니다.
  • 보안 및 인증: DAB는 OAuth2, EasyAuth, Microsoft Entra ID를 포함한 다양한 인증 방법과 통합됩니다. 또한 역할 기반 권한 부여와 세부적인 보안 제어도 지원합니다. 즉, 누가 데이터에 액세스할 수 있는지, 그리고 데이터로 무엇을 할 수 있는지에 대한 제어력을 유지하면서 데이터를 공개할 수 있다는 의미입니다.
  • 사용 편의성: 단일 구성 파일로 API 엔드포인트를 정의하여 설정 프로세스를 간단하고 효율적으로 만들 수 있습니다.
  • 다른 Azure 서비스와 통합: DAB는 Azure Static Web Apps, Azure Container Apps 및 기타 Azure 서비스와 원활하게 통합되어 기능과 확장성을 향상합니다.

데이터 API 작성기에서 사용 가능한 기능 목록을 보려면 데이터 API 작성기의 기능 가용성을 참조하세요.

데이터 API 작성기 사용

Azure 데이터 API 작성기를 시작하려면 Azure 구독과 최신 .NET 8Azure Developer CLI와 같은 필수 도구가 설치되어 있는지 확인합니다.

  1. 새 프로젝트 만들기: Azure Developer CLI를 사용하여 필요한 서비스를 만들고 배포합니다. 예를 들어, Azure Developer CLI를 사용하여 데이터 API 작성기를 호스팅하는 Azure Static Web App을 배포합니다. 프로젝트를 만들려는 디렉터리로 이동하고 다음 명령을 실행하여 새 Azure Static Web App 프로젝트를 만듭니다.

    azd init --template staticwebapp
    azd up
    
  2. 데이터베이스 연결 구성: 데이터베이스 연결 기능을 사용하여 Azure SQL Database를 배포된 정적 웹앱에 연결합니다. 만든 Azure Static Web App으로 이동한 후 설정에서 데이터베이스 연결 페이지에서 기존 데이터베이스를 연결합니다.

  3. API 엔드포인트 정의: REST 또는 GraphQL 엔드포인트를 정의하기 위한 구성 파일을 만듭니다. 이 파일은 노출할 데이터베이스 개체와 허용되는 작업을 지정합니다. 예를 들어, 다음 명령을 실행하여 구성 파일에 데이터베이스 엔터티를 추가할 수 있습니다.

    dab add "Address" --source "dbo.Address" --permissions "anonymous:*" --config "swa-db-connections/staticwebapp.database.config.json"
    

구성 파일 검토

Azure SQL Database에서 테이블을 노출하기 위한 구성 파일의 간단한 예는 다음과 같습니다.

{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "Server=tcp:your_server.database.windows.net,1433;Initial Catalog=your_database;Persist Security Info=False;User ID=your_user;Password=your_password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
  },
  "entities": {
    "products": {
      "source": "Address",
      "rest": true,
      "graphql": true,
      "permissions": [
        {
          "role": "anonymous",
          "actions": ["read"]
        }
      ]
    }
  }
}

이 구성은 Address 테이블을 REST와 GraphQL 엔드포인트로 모두 노출하여 익명 사용자에게 읽기 권한을 허용합니다.