데이터 API 작성기에서 구성 파일 환경 사용
이 가이드에서는 구성 파일을 사용하여 개발 환경을 대상으로 지정하는 단계를 안내합니다. 최종 결과 구성 파일은 최소한의 변경으로 나중에 프로덕션 데이터베이스 구성을 추가할 수 있을 만큼 유연해야 합니다.
사전 요구 사항
- 기존 SQL 데이터베이스.
- 데이터 관리 클라이언트
- 클라이언트가 설치되지 않은 경우 Azure Data Studio를 설치합니다.
- 데이터 API 작성기 CLI. CLI 설치
SQL 테이블 및 데이터 Create
이 예제 시나리오에서 사용할 가상 데이터가 있는 테이블을 Create.
원하는 클라이언트 또는 도구를 사용하여 SQL 서버 및 데이터베이스에 연결합니다. 예를 들어 SQL Server Management Studio, Azure Data Studio 및 Visual Studio Code대한 SQL Server 확장이 있지만 이에 국한되지 않습니다.
및
name
열을 사용하여 라는Books
id
테이블을 Create.DROP TABLE IF EXISTS dbo.Books; CREATE TABLE dbo.Books ( id int NOT NULL PRIMARY KEY, title nvarchar(1000) NOT NULL, [year] int null, [pages] int null ); GO
표에 4개의 샘플 책 행을
Books
삽입합니다.INSERT INTO dbo.Books VALUES (1000, 'Practical Azure SQL Database for Modern Developers', 2020, 326), (1001, 'SQL Server 2019 Revealed: Including Big Data Clusters and Machine Learning', 2019, 444), (1002, 'Azure SQL Revealed: A Guide to the Cloud for SQL Server Professionals', 2020, 528), (1003, 'SQL Server 2022 Revealed: A Hybrid Data Platform Powered by Security, Performance, and Availability', 2022, 506) GO
간단한
SELECT *
쿼리를 사용하여 데이터를 테스트합니다.SELECT * FROM dbo.Books
Create 기본 구성 파일
DAB CLI를 사용하여 기준 구성 파일을 Create.
를 사용하여
dab init
일반적인 구성 파일을 Create.dab init --database-type "mssql" --host-mode "Development"
를 사용하여 Book 엔터티를
dab add
추가합니다.dab add Book --source "dbo.Books" --permissions "anonymous:*"
현재 dab-config.json 구성 파일을 관찰합니다. 파일에는 단일 엔터티, REST API 엔드포인트 및 GraphQL 엔드포인트가 있는 API의 기준 구현이 포함되어야 합니다.
{ "$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.10.23/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "", "options": { "set-session-context": false } }, "runtime": { "rest": { "enabled": true, "path": "/api", "request-body-strict": true }, "graphql": { "enabled": true, "path": "/graphql", "allow-introspection": true }, "host": { "cors": { "origins": [], "allow-credentials": false }, "authentication": { "provider": "StaticWebApps" }, "mode": "development" } }, "entities": { "Book": { "source": { "object": "dbo.Books", "type": "table" }, "graphql": { "enabled": true, "type": { "singular": "Book", "plural": "Books" } }, "rest": { "enabled": true }, "permissions": [ { "role": "anonymous", "actions": [ { "action": "*" } ] } ] } } }
환경 변수 파일 Create
이제 환경 파일을 추가하여 DAB에 대한 환경 변수를 저장합니다.
- DAB CLI 구성 파일과 동일한 디렉터리에 라는
.env
파일을 Create.
참고
.env
파일 이름(예.gitignore
: 및 .editorconfig
파일)에는 파일 이름이 없고 파일 확장명만 있습니다. 이름은 대/소문자를 구분하지 않지만 규칙은 소문자입니다.
값이 인
DAB_ENVIRONMENT
환경 변수를 추가합니다Development
. 또한 데이터베이스 연결 문자열 사용하여 환경 변수를 추가SQL_DOCKER_CONNECTION_STRING
합니다.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Create 환경 구성 파일
마지막으로 현재 구성과 원하는 환경 구성 사이에 델타가 있는 개발 구성 파일을 추가합니다.
dab-config.Development.json
파일을 만듭니다. 다음 콘텐츠를 추가하여 함수를@env()
사용하여 개발 환경에서 값을 설정합니다connection-string
.{ "$schema": "<https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json>", "data-source": { "database-type": "mssql", "connection-string": "@env('SQL_DOCKER_CONNECTION_STRING')" } }
변경 내용을 .env, dab-config.json 및 dab-config에 저장합니다. 파일을 Development.json.
테스트 설정
를 사용하여
dab start
도구가 예상대로 시작되는지 유효성을 검사합니다.dab start
도구의 출력에는 실행 중인 API로 이동하는 데 사용할 주소가 포함되어야 합니다.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
팁
이 예제에서 애플리케이션은 포트 5000에서 실행됩니다
localhost
. 실행 중인 애플리케이션의 주소와 포트가 다를 수 있습니다.먼저 에 GET 요청을 실행하여 API를 수동으로 시도합니다
/api/Book
.팁
이 예제에서 URL은 입니다
https://localhost:5000/api/Book
. 웹 브라우저를 사용하여 이 URL로 이동할 수 있습니다.다음으로, 의 Swagger 설명서 페이지로
/swagger
이동합니다.팁
이 예제에서 URL은 입니다
<https://localhost:5000/swagger
. 다시 웹 브라우저를 사용하여 이 URL로 이동할 수 있습니다.마지막으로 이 작업을 탐색하고 실행하여 GraphQL 엔드포인트를
/graphql
시도합니다.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
팁
이 예제에서 URL은 입니다
https://localhost:5000/graphql
. 다시 웹 브라우저를 사용하여 이 URL로 이동할 수 있습니다.