다음을 통해 공유


Azure Databases용 Data API Builder란?

DAB(데이터 API 작성기)는 SQL Server, Azure Cosmos DB, PostgreSQL 및 MySQL과 같은 지원되는 데이터베이스에 대해 REST 및 GraphQL API를 만드는 오픈 소스 구성 기반 엔진입니다. DAB는 모든 클라우드 또는 온-프레미스에서 실행되며 무료로 사용할 수 있습니다. 단일 JSON 파일을 사용하여 구성하므로 사용자 지정 API를 작성하지 않고도 데이터베이스 개체를 노출할 수 있습니다.

생성 모자를 쓰고 있는 데이터 API 작성기 마스코트의 그림입니다.

데이터 API 작성기에서는 데이터베이스에 대해 제네릭 CRUD(만들기, 읽기, 업데이트, 삭제) 작업을 수행하는 대부분의 사용자 지정 데이터 API를 대체합니다. DAB는 언어, 기술 및 프레임워크와 독립적입니다. 애플리케이션 코드와 단일 구성 파일이 필요하지 않습니다. 가장 좋은 점은 프리미엄 계층이 없는 진정한 무료이며 어디서나 무상태로 실행된다는 점입니다.

엔드포인트 지원

Data API Builder는 REST 및 GraphQL 엔드포인트를 기본적으로 동시에 지원합니다. 버전 1.7 이상을 사용하는 DAB는 동일한 풍부한 기능을 가진 에이전트 앱에 대한 MCP(모델 컨텍스트 프로토콜) 도 지원합니다.

데이터 API 작성기의 엔드포인트 지원 다이어그램.

DAB에는 플랫폼 간 CLI, OpenTelemetry 및 상태 검사가 포함됩니다. 또한 REST 엔드포인트용 OpenAPI 및 Swagger와 GraphQL 엔드포인트에 대한 Nitro(이전에는 바나나 케이크 팝이라고 함)를 지원합니다.

팁 (조언)

즉시 사용 가능한 엔드포인트 기능:

  • 데이터 페이지 매김
  • 데이터 필터링
  • 데이터 정렬
  • 열 선택
  • 저장 프로시저
  • 관계 탐색
  • SQL 제품군 데이터베이스에 대한 집계

데이터베이스 지원

DAB(데이터 API 작성기)는 관계형 및 NoSQL 원본을 비롯한 여러 백 엔드 데이터 원본을 동시에 지원합니다. 지원되는 데이터베이스에는 SQL Server 및 Azure SQL, Azure Cosmos DB, PostgreSQL 및 MySQL이 포함됩니다. 데이터베이스의 세부 정보 및 제한 사항은 기능 가용성을 참조하세요.

데이터 API 작성기에서 지원되는 데이터베이스의 다이어그램.

데이터 API 작성기에서 동시에 여러 데이터 원본에 연결할 수 있습니다. 관계형 원본을 JSON 또는 문서 데이터베이스와 결합하고 클라우드 및 온-프레미스 데이터베이스를 혼합할 수 있습니다. 이러한 유연성을 통해 DAB는 간단한 설정에서 복잡한 배포 토폴로지에 이르기까지 모든 것을 지원할 수 있습니다.

Security

데이터 API 작성기의 상태 비중이 없고 Docker 친화적인 컨테이너는 Azure App Service EasyAuth, Microsoft Entra ID 또는 JWT(JSON Web Token) 서버를 사용하여 보호할 수 있습니다. 유연한 정책 엔진, 세분화된 보안 컨트롤이 있으며 클레임 데이터를 SQL 세션 컨텍스트에 자동으로 전달합니다.

데이터 API 작성기의 인증 옵션 다이어그램.

Data API Builder는 여러 인증 공급자를 지원합니다.

Provider 사용 사례
Microsoft Entra ID Microsoft ID를 사용하는 프로덕션 앱
사용자 지정 JWT 타사 ID 공급자(Okta, Auth0, Keycloak)
App Service Azure App Service EasyAuth 뒤에서 실행되는 앱
시뮬레이터 로컬 개발 및 테스트

단계별 구성 가이드는 보안 개요를 참조하세요.

건축학

이 다이어그램은 데이터 API 작성기의 모든 구성 요소 간의 관계를 분석합니다. 테이블, 뷰 및 저장 프로시저를 정의하는 데이터베이스 스키마로 시작합니다. DAB 구성 파일은 이러한 개체를 추상화 계층으로 투영합니다. 해당 계층에서 엔터티 이름을 지정하고, 필드를 선택하거나 별칭을 지정하고, 관계를 정의하고, 사용 권한을 적용합니다. 런타임에 Data API 작성기에서 이 구성을 읽고 일관된 API 표면을 생성하여 REST 및 GraphQL 엔드포인트를 통해 동일한 엔터티 모델을 노출합니다. 이러한 분리를 통해 애플리케이션 및 클라이언트에 대해 안정적이고 안전한 계약을 유지하면서 데이터베이스를 독립적으로 발전할 수 있습니다.

데이터 API 작성기 아키텍처의 다이어그램.

단일 JSON 파일을 사용하여 Data API Builder를 구성합니다. 파일에서 다음을 정의합니다.

  • 서버가 데이터 원본에 연결하는 방법
  • 노출되는 테이블, 뷰 및 저장 프로시저
  • 엔터티의 형성, 명명 및 관계 설정 방법
  • 각 작업에 액세스할 수 있는 역할

배포 옵션

데이터 API 작성기를 위한 컨테이너 호스팅 옵션 다이어그램.

DAB는 Azure Container Apps, Azure Container Instances, Azure Kubernetes Service 및 Azure Web Apps for Containers에서 잘 작동합니다. DAB는 사용자 지정 온-프레미스 배포를 완벽하게 지원하면서 이러한 서비스와 함께 작동합니다.

통합 및 기능

또한 DAB는 Application Insights와 원활하게 통합됩니다. 구성 파일은 데이터베이스의 관계를 반영하거나 핫 다시 로드를 지원하는 새 가상 파일을 정의할 수 있습니다. GraphQL 엔드포인트는 단일 트랜잭션 내에서 여러 개의 중첩된 Create 문을 허용하는 반면 REST 엔드포인트는 메모리 내 캐싱 및 OData와 유사한 쿼리 문자열 키워드를 다양하게 지원합니다.

적은 코드, 더 많은 기능

DAB는 사용자 지정 API 코드를 줄이고, CI/CD 파이프라인을 단축하고, 가장 큰 개발 팀을 위해 일반적으로 예약된 표준 및 고급 기능을 도입하는 데 도움이 될 수 있습니다. 매우 간단하고 확장 가능하며 관찰 가능한 상태로 유지되는 동안 안전하고 기능이 풍부합니다.

오픈 소스

데이터 API 작성기는 오픈 소스이며 MIT 라이선스에 따라 릴리스됩니다. 리포지토리는 Azure/data-api-builder의 GitHub에서 사용할 수 있습니다.