Azure SQL Database용 데이터 API 작성기 탐색
오늘날의 데이터 중심 환경에서 데이터에 효율적으로 액세스하고 조작하는 기능은 기업과 개발자 모두에게 매우 중요합니다. DAB(데이터 API 작성기)는 데이터베이스에 대한 CRUD(만들기, 읽기, 업데이트, 삭제) 작업을 수행하는 사용자 지정 API를 바꿔 Azure SQL Database에 대한 최신 REST 및 GraphQL 엔드포인트를 만드는 강력한 솔루션을 제공합니다.
Azure 데이터 API 작성기는 개발자를 위해 설계된 오픈 소스 도구로, 데이터베이스 개체를 엔드포인트로 노출하는 프로세스를 간소화합니다. Azure SQL, SQL Server, PostgreSQL, MySQL 및 Azure Cosmos DB 포함하지만 제한되지 않는 많은 데이터베이스를 지원합니다. DAB를 사용하면 코드를 작성하지 않고도 추가 비용 없이 안전하고 확장 가능하며 성능이 뛰어난 API를 만들 수 있습니다.
주요 기능 알아보기
개발 프로세스에서 DAB를 사용하면 많은 이점이 있습니다. 프로젝트 요구 사항에 얼마나 잘 부합하는지 확인하는 데 도움이 되는 몇 가지 주요 장점은 다음과 같습니다.
- 플랫폼 간 호환성: DAB는 플랫폼 간이어서 모든 클라우드나 온-프레미스 환경에서 실행할 수 있습니다. 관계형 및 NoSQL 데이터베이스를 포함한 여러 백 엔드 데이터 원본을 지원합니다.
-
보안 및 인증: DAB는 Microsoft Entra ID(), App Service EasyAuth(
EntraID), Static Web Apps 인증(AppService), 사용자 지정 JWT 공급자(StaticWebAppsCustom) 및 로컬 개발 모드를 비롯한 여러 인증 공급자와Simulator통합됩니다. 또한 역할 기반 권한 부여와 세부적인 보안 제어도 지원합니다. 즉, 누가 데이터에 액세스할 수 있는지, 그리고 데이터로 무엇을 할 수 있는지에 대한 제어력을 유지하면서 데이터를 공개할 수 있다는 의미입니다. - 사용 편의성: 단일 구성 파일로 API 엔드포인트를 정의하여 설정 프로세스를 간단하고 효율적으로 만들 수 있습니다.
- 다른 Azure 서비스와 통합: DAB는 Azure Static Web Apps, Azure Container Apps 및 기타 Azure 서비스와 원활하게 통합되어 기능과 확장성을 향상합니다.
데이터 API 작성기에서 사용 가능한 기능 목록을 보려면 데이터 API 작성기의 기능 가용성을 참조하세요.
데이터 API 작성기 사용
Azure Data API Builder를 시작하려면 Azure 구독과 필요한 도구(예: .NET 8 이상 및 Azure Developer CLI)가 설치되어 있는지 확인합니다.
DAB CLI를 설치합니다.
Microsoft.DataApiBuilderNuGet 패키지를 전역 .NET 도구로 설치합니다.dotnet tool install --global Microsoft.DataApiBuilder구성 파일을 초기화합니다. 환경 변수를 통해 연결 문자열 참조하여 기본
dab-config.json파일을 만드는 데 사용합니다dab init.dab init --database-type "mssql" --connection-string "@env('SQL_CONNECTION_STRING')"API 엔드포인트 정의: 구성 파일에 데이터베이스 엔터티를 추가하여 REST 또는 GraphQL 엔드포인트를 정의합니다. 이 단계에서는 노출할 데이터베이스 개체와 허용되는 작업을 지정합니다. 예를 들어 다음 명령을 실행하여 구성 파일에 엔터티를 추가할 수 있습니다.
dab add "Address" --source "dbo.Address" --permissions "anonymous:*"
구성 파일 검토
Azure SQL Database에서 테이블을 노출하기 위한 구성 파일의 간단한 예는 다음과 같습니다.
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
},
"entities": {
"Address": {
"source": "dbo.Address",
"rest": true,
"graphql": true,
"permissions": [
{
"role": "anonymous",
"actions": ["read"]
}
]
}
}
}
이 구성은 Address 테이블을 REST와 GraphQL 엔드포인트로 모두 노출하여 익명 사용자에게 읽기 권한을 허용합니다. 연결 문자열 구성 파일에 저장되지 않고 런타임 시 환경 변수에서 읽습니다SQL_CONNECTION_STRING.