다음을 통해 공유


버전 0.11 이하의 새로운 기능

데이터 API 작성기 버전 0.11 이하의 모든 업데이트 및 개선 사항에 대한 릴리스 정보 및 정보입니다.

버전 0.11의 새로운 기능

Data API Builder 버전 0.10의 업데이트 및 개선 사항에 대한 릴리스 정보 및 정보입니다.

SQL Data Warehouse에 대한 GraphQL 지원

SQL Data Warehouse는 이제 GraphQL 엔드포인트를 지원합니다.

NoSQL 필터링을 위한 향상된 Azure Cosmos DB

이제 NoSQL용 Azure Cosmos DB는 연산자를 사용하여 중첩된 필터, ID 변수 및 문자열 배열 검색을 contains 지원합니다.

명령줄 인터페이스를 사용하여 애플리케이션 데이터 수집 사용

이제 DAB CLI(명령줄 인터페이스)를 사용하여 Application Insights를 사용하여 데이터 수집을 사용하도록 설정할 수 있습니다.

버전 0.10의 새로운 기능

Data API Builder 버전 0.10의 업데이트 및 개선 사항에 대한 릴리스 정보 및 정보입니다.

일반 공급에 접근하면 안정성에 초점을 맞춥니다. 코드 품질 및 엔진 안정성에 대한 모든 노력이 이 문서에 자세히 설명된 것은 아니지만 이 목록은 중요한 업데이트를 강조 표시합니다.

GitHub 릴리스 정보

모든 변경 내용 및 개선 사항의 포괄적인 목록은 다음 릴리스 페이지를 검토하세요.

메모리 내 캐싱

버전 0.10에는 REST 및 GraphQL 엔드포인트에 대한 메모리 내 캐싱이 도입되었습니다. 내부 캐싱을 위해 설계된 이 기능은 향후 분산 캐싱을 위한 토대를 마련합니다. 메모리 내 캐싱은 반복적인 쿼리에서 데이터베이스 부하를 줄입니다.

캐싱 시나리오

  • 데이터베이스 부하 감소: 캐시는 비용이 많이 드는 쿼리 결과를 저장하므로 반복되는 데이터베이스 호출이 필요하지 않습니다.
  • API 확장성 향상: 캐싱은 데이터베이스 요청을 늘리지 않고 더 빈번한 API 호출을 지원하여 API의 기능을 크게 확장합니다.

구성 변경

캐싱 설정은 섹션 및 각 엔터티에 runtime 대해 세분화된 제어를 제공합니다.

런타임 설정:

{
  "runtime": {
    "cache": {
      "enabled": true,
      "ttl-seconds": 6
    }
  }
}
  • 캐싱은 기본적으로 사용하지 않도록 설정됩니다.
  • 기본 TTL(TTL)은 5초입니다.

엔터티 설정:

{
  "Book": {
    "source": {
      "object": "books",
      "type": "table"
    },
    "graphql": {
      "enabled": true,
      "type": {
        "singular": "book",
        "plural": "books"
      }
    },
    "rest": {
      "enabled": true
    },
    "permissions": [
      {
        "role": "anonymous",
        "actions": [
          {
            "action": "*"
          }
        ]
      }
    ],
    "cache": {
      "enabled": true,
      "ttl-seconds": 6
    }
  }
}

CLI의 구성 유효성 검사

이제 CLI는 구성 파일에서 오류 또는 불일치를 검사하여 개발 워크플로를 향상할 수 있습니다 dab validate .

유효성 검사 단계

  1. 스키마 유효성 검사
  2. 구성 속성 유효성 검사
  3. 구성 권한 유효성 검사
  4. 데이터베이스 연결 유효성 검사
  5. 엔터티 메타데이터 유효성 검사

미리 보기 기능

  • 초기 DWSQL 지원. #1864
  • 여러 데이터 원본에 대한 지원. #1709

버전 0.9의 새로운 기능

다음은 Data API Builder 0.9의 가장 관련성이 큰 변경 내용 및 개선 사항에 대한 세부 정보입니다.

GitHub 릴리스 정보

모든 변경 내용 및 개선 사항의 포괄적인 목록은 다음 릴리스 페이지를 검토하세요.

DAB를 자체 호스팅할 때 Application Insights 사용

특히 데이터 API 작성기가 Azure에 배포된 경우 더 나은 모니터링 및 디버깅 환경을 위해 로그를 Application Insights로 스트리밍할 수 있습니다. 구성 파일에 새 telemetry 섹션을 추가하여 Application Insights와의 통합을 사용하도록 설정하고 구성할 수 있습니다.

"telemetry": {
    "application-insights": {
    "enabled": true,    // To enable/disable application insights telemetry
    "connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
    }
}

Application Insights 사용 설명서 페이지에서 모든 세부 정보를 읽습니다.

REST 요청 본문에서 불필요한 필드 무시 지원

이제 새 request-body-strict 옵션을 사용하면 REST 페이로드에 추가 필드가 있으면 오류(기본 동작, 이전 버전과 호환됨)가 생성되는지 아니면 추가 필드가 자동으로 무시되는지 여부를 결정할 수 있습니다.

"runtime": {
    "rest": {
      "enabled": true,
      "path": "/api",
      "request-body-strict": true
    },
    ...
}

옵션을 false로 설정 request-body-strict 하면 관련 데이터베이스 개체에 대한 매핑이 없는 필드는 오류를 생성하지 않고 무시됩니다.

연결에 대한 mssql 애플리케이션 이름 추가

이제 데이터 API 작성기가 연결 문자열 mssql 에 삽입됩니다. 데이터베이스 형식에 대해서만 값을 dab-<version> 속성으로 Application Name 삽입하여 데이터베이스 서버의 연결을 보다 쉽게 식별할 수 있습니다. 가 연결 문자열에 이미 있는 경우 Application Name 데이터 API 작성기 버전이 추가됩니다.

time 지원 데이터 형식 mssql

time 이제 데이터베이스에서 데이터 형식이 mssql 지원됩니다.

에 대한 트리거가 있는 테이블의 변형 mssql

이제 데이터베이스에 대한 mssql 트리거가 있는 테이블에서 변형이 완전히 지원됩니다.

사용자가 테이블에 있는 읽기 전용 필드의 업데이트/삽입 방지

데이터베이스의 읽기 전용 필드를 자동으로 검색하고 사용자가 해당 필드를 업데이트/삽입하지 못하도록 방지합니다.

버전 0.8의 새로운 기능

다음은 Data API Builder 0.8에서 가장 관련성이 큰 변경 내용 및 개선 사항에 대한 세부 정보입니다.

GitHub 릴리스 정보

모든 변경 내용 및 개선 사항의 포괄적인 목록은 다음 릴리스 페이지를 검토하세요.

.env 파일에 대한 지원이 추가됨

환경 변수는 일반 텍스트 노출로부터 비밀을 보호하고 다른 설정에서 값 교환을 허용합니다. 그러나 이러한 변수는 사용자 또는 컴퓨터 범위에서 설정해야 하며, 변수 이름이 중복되면 프로젝트 간 변수 "출혈"이 발생할 수 있습니다. 더 나은 대안은 환경 파일입니다. 자세한 내용은 데이터 API 작성기 - 블로그의 환경 파일을 참조하세요.

버전 0.7.6의 새로운 기능

이 문서에서는 0.7.6 릴리스에 대한 릴리스 정보를 설명합니다.

GitHub 끌어오기 요청

OpenAPI v3-0-1 설명 문서 만들기에 대한 초기 지원

데이터 API 작성기에서는 서비스에 대한 유용한 정보가 포함된 설명 문서를 생성하고 노출하기 위한 OpenAPI 표준을 지원합니다. 이러한 문서는 런타임 구성 파일 및 각 데이터베이스 개체에 대한 메타데이터에서 만들어집니다. 이러한 개체는 동일한 구성 파일에 정의된 REST 사용 엔터티와 연결됩니다. 그런 다음 UI를 통해 노출되고 직렬화된 파일로 사용할 수 있습니다.

OpenAPI 및 Data API 작성기의 세부 정보에 대한 자세한 내용은 OpenAPI를 참조하세요.

구성 파일 병합 허용

두 구성 파일을 자동으로 병합하는 기능을 추가합니다.

여러 쌍의 기준 및 환경별 구성 파일을 유지 관리하여 환경별 설정 관리를 간소화할 수 있습니다. 예를 들어 개발프로덕션에 대해 별도의 구성을 유지 관리할 수 있습니다. 이 단계에는 서로 다른 환경 간에 모든 공통 설정이 있는 기본 구성 파일이 포함됩니다. 그런 다음 변수를 DAB_ENVIRONMENT 설정하여 데이터 API 작성기에서 사용할 병합할 구성 파일을 제어할 수 있습니다.

자세한 내용은 CLI 참조를 참조하세요.

트랜잭션에서 GraphQL 및 REST 변형 실행

데이터 API 작성기에서는 특정 유형의 GraphQL 및 REST 요청을 실행하는 데이터베이스 트랜잭션을 만듭니다.

수행할 데이터베이스 쿼리를 두 개 이상 만드는 작업이 포함된 많은 요청이 있습니다. 예를 들어 업데이트의 결과를 반환하려면 먼저 업데이트에 대한 쿼리를 만들어야 하며, 반환되기 전에 새 값을 읽어야 합니다. 요청에서 여러 데이터베이스 쿼리를 실행해야 하는 경우 이제 데이터 API 작성기가 단일 트랜잭션 내에서 이러한 데이터베이스 쿼리를 실행합니다.

REST 설명서 및 GraphQL 설명서의 GraphQL에서 REST 컨텍스트 내에서 이 기능에 대해 자세히 확인할 수 있습니다.

버전 0.6.14의 새로운 기능

이 문서에서는 Azure Databases용 Data API Builder에 대한 2023년 3월 릴리스의 패치에 대해 설명합니다.

버그 수정

  • Cosmos에 대한 쿼리 필터 액세스 거부 문제를 해결합니다.
  • Cosmos DB는 현재 필드 수준 권한 부여를 지원하지 않으므로 사용자가 런타임 구성에서 field 실수로 권한을 전달하는 상황을 방지하기 위해 유효성 검사를 추가했습니다.

버전 0.6.13의 새로운 기능

이 버전에 대한 릴리스 정보의 전체 목록은 GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13에서 사용할 수 있습니다.

GraphQL 스키마를 내보내는 새 CLI 명령

GraphQL 스키마를 내보내기 위해 새 옵션이 추가됩니다. 그러면 DAB 서버가 시작된 다음, 제공된 위치에 쓰기 전에 스키마를 가져오기 위해 쿼리합니다.

dab export --graphql -c dab-config.development.json -o ./schemas

이 명령은 ./schemas 디렉터리에 GraphQL 스키마 파일을 생성합니다. 구성 파일의 경로는 선택적 매개 변수로, 'dab-config'가 아닌 한 기본값은 'dab-config.json'입니다.<>DAB_ENVIRONMENT.json'이 있으며 여기서 DAB_ENVIRONMENT 환경 변수입니다.

MsSql에 대한 만들기 작업에 대한 데이터베이스 정책 지원

이제 MsSql에 대한 모든 CRUD(만들기, 읽기, 업데이트, 삭제) 작업에 대해 데이터베이스 정책이 지원됩니다. 예를 들면 다음과 같습니다.

"entities":{
  "Revenue":{
    "source": "revenues",
    "permissions":[
      "role": "authenticated",
          "actions": [
            {
              "action": "Create",
              "policy": {
                "database": "@item.revenue gt 0"
              }
            },
            "read",
            "update",
            "delete"
          ]
    ]
  }
}

엔터티에 대한 Revenue 이전 구성은 역할이 Authenticated 있는 삽입 작업을 수행하는 사용자가 수익이 0보다 작거나 같은 레코드를 만들 수 없다는 것을 나타냅니다.

CLI를 통해 GraphQL 경로를 구성하고 REST 및 GraphQL 엔드포인트를 전역적으로 사용하지 않도록 설정하는 기능

이제 명령에 대한 세 가지 추가 옵션을 지원합니다.init

  • graphql.path : 사용자 지정 GraphQL 경로를 제공하려면
  • rest.disabled: REST 엔드포인트를 전역적으로 사용하지 않도록 설정하려면
  • graphql.disabled: GraphQL 엔드포인트를 전역적으로 사용하지 않도록 설정하려면

예를 들어 init 명령은 런타임 섹션을 사용하여 구성 파일을 생성합니다.

dab init --database-type mssql --rest.disabled --graphql.disabled --graphql.path /gql
"runtime": {
    "rest": {
      "enabled": false,
      "path": "/api"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": false,
      "path": "/gql"
    },
}

CLI에서 뷰 추가 및 업데이트에 필수 키 필드

이제 사용자가 CLI를 통해 구성에 새 데이터베이스 뷰(를 통해dab add)를 추가할 때마다 노출된 옵션을 source.key-fields 통해 키 필드(기본 키로 사용)를 제공해야 합니다. 또한 CLI를 통해 구성 파일의 (를 통해 dab update) 뷰의 구성에 있는 모든 항목을 업데이트할 때마다 업데이트가 기본 데이터베이스의 뷰 정의와 관련된 모든 항목(예: 원본 형식, 키 필드)을 변경하는 경우 업데이트 명령에서도 키 필드를 지정해야 합니다.

그러나 구성에 명시적 기본 키를 지정하지 않고도 보기를 지원하지만 이러한 뷰에 대한 구성은 구성 파일에 직접 작성해야 합니다.

예를 들어 dab add 명령을 사용하여 보기를 추가합니다.

dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true

이 명령은 다음 예제와 같은 엔터티에 대한 books_view 구성을 생성합니다.

"books_view": {
      "source": {
        "type": "view",
        "object": "books_view",
        "key-fields":[
          "id"
        ]
      },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            "*"
          ]
        }
      ],
      "rest": true,
      "graphql": true
    }

이제 DAB가 오픈 소스이므로 스토리지 계정에서 아티팩트 다운로드할 필요가 없습니다. 대신 GitHub에서 직접 다운로드할 수 있습니다. 따라서 링크가 그에 따라 업데이트됩니다.

버전 0.5.34의 새로운 기능

이 버전에 대한 릴리스 정보의 전체 목록은 GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34에서 사용할 수 있습니다.

런타임 수준에서 REST 및 GraphQL 사용 플래그 적용

런타임 수준에서 모든 엔터티에 대한 REST/GraphQL 요청을 사용하거나 사용하지 않도록 설정하는 새 옵션이 추가됩니다. 전역적으로 사용하지 않도록 설정된 경우 개별 엔터티 설정에 관계없이 REST 또는 GraphQL 요청을 통해 엔터티에 액세스할 수 없습니다. 전역적으로 사용하도록 설정된 경우 엔터티 수준 설정에서 명시적으로 사용하지 않도록 설정하지 않는 한 기본적으로 개별 엔터티에 액세스할 수 있습니다.

"runtime": {
    "rest": {
      "enabled": false,
      "path": "/api"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": false,
      "path": "/graphql"
    }
  }

요청 로그의 상관 관계 ID

디버깅을 돕기 위해 요청 중에 생성된 모든 로그에 상관 관계 ID를 연결합니다. 많은 요청이 수행될 수 있으므로 디버깅 프로세스에 도움이 되도록 특정 요청에 대한 로그를 식별하는 방법이 중요합니다.

엔진 및 CLI의 저장 프로시저에 대한 와일드카드 작업 지원

저장 프로시저의 경우 이제 와일드카드 * 작업으로 역할을 구성할 수 있지만 작업으로 execute 만 확장됩니다.

버전 0.5.32의 새로운 기능

이 버전에 대한 릴리스 정보의 전체 목록은 GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta에서 사용할 수 있습니다.

CLI를 통해 나머지 경로를 사용자 지정하는 기능

REST API의 init 경로를 사용자 지정하는 새 옵션이 --rest.path 명령에 도입되었습니다.

dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api" 

이 명령은 접두 rest-api사를 사용하여 REST 엔드포인트를 구성합니다. REST 엔드포인트의 전체 경로는 다음과 같습니다. https://<dab-server>/rest-api/<entity-name>

--rest.path 옵션을 사용하지 않으면 REST 엔드포인트가 기본 접두사 api로 구성됩니다. 이 경우 전체 경로는 다음과 같습니다. https://<dab-server>/api/<entity-name>

MAR의 데이터 API 작성기 컨테이너 이미지

이제 Azure Databases용 데이터 API 작성기의 공식 Docker 이미지를 Microsoft Artifact Registry에서 사용할 수 있습니다.

게시된 이미지를 사용하는 방법에 대한 지침은 Microsoft 컨테이너 레지스트리 - 데이터 API 작성기를 참조하세요.

GraphQL 조각 지원

조각은 graphQL 쿼리의 재사용 가능한 부분입니다. 동일한 필드를 다른 쿼리에서 쿼리해야 하는 시나리오에서는 반복되는 필드를 조각이라는 재사용 가능한 단일 구성 요소로 통합할 수 있습니다.

조각에 대한 자세한 내용은 GraphQL 쿼리를 참조하세요.

형식 Character 에서 호출 description 되는 조각은 다음에 정의됩니다.

fragment description on Character {
  name
  homePlanet
  primaryFunction
}

정의된 조각을 사용하는 GraphQL 쿼리는 다음과 같이 생성할 수 있습니다.

{
  Player1: Player{
    id
    playerDescription{
        ...description
    }
  }
}

이전 쿼리의 경우 결과에는 다음 필드가 포함됩니다.

{
 Player1: Player{
    id
    playerDescription{
        name
        homePlanet
        primaryFunction
    }
  }   
}

BinSkim을 켜고 Policheck 경고 수정

BinSkim은 컴파일러/링커 설정 및 기타 보안 관련 이진 특성의 유효성을 검사하는 PE(이식 가능한 실행 파일) 경량 스캐너입니다. 파이프라인의 static-tools 파이프라인 작업이 추가되어 모든 파이프라인 실행 시 BinSkim 검사를 수행합니다. PoliCheck 시스템은 전체 글로벌 준비 정책의 일부로 텍스트 및 코드 검토 요구 사항을 준수하는 데 도움이 되는 도구 및 데이터 세트입니다. Policheck 검사에서 생성된 경고는 중요한 용어와 관련하여 규정을 준수하도록 수정되었습니다.

버전 0.5.0의 새로운 기능

이 버전에 대한 릴리스 정보의 전체 목록은 GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta에서 사용할 수 있습니다.

공용 JSON 스키마

공용 JSON 스키마는 JSON 스키마를 지원하는 Visual Studio Code와 같은 IDE를 사용하는 경우 "intellisense"를 지원합니다. 폴더의 파일에는 basic-empty-dab-config.json 파일을 수동으로 만들 때의 시작점 예제가 있습니다dab-config.json.samples

공용 Microsoft.DataApiBuilder NuGet

Microsoft.DataApiBuilder 는 이제 다음과 같이 dotnet 도구를 사용하여 쉽게 설치할 수 있는 공용 NuGet 패키지로 사용할 수 있습니다.

dotnet tool install --global Microsoft.DataApiBuilder

Azure SQL의 저장 프로시저에 대한 새로운 execute 작업

execute 작업은 원본 형식이 엔터티stored-procedure를 백업하는 경우에만 구성 파일의 섹션에서 허용되는 유일한 작업 permissions 으로 도입됩니다. 기본적으로 이러한 엔터티에는 메서드만 POST 허용되며 이름에 추가된 접두사를 execute 사용하여 GraphQL mutation 작업만 구성됩니다. 구성 파일의 섹션에서 허용된 methodsrest 를 명시적으로 지정하면 이 동작이 재정의됩니다. 마찬가지로 GraphQL operation 의 경우 섹션의 를 graphql 대신 재정의할 query 수 있습니다. 자세한 내용은 보기 및 저장 프로시저를 참조하세요.

mappings 섹션

mappingsentity의 섹션에서 데이터베이스 개체 필드 이름과 해당 노출된 필드 이름 간의 매핑은 GraphQL 및 REST 엔드포인트 모두에 대해 정의됩니다.

형식:

<database_field>: <entity_field>

예를 들면 다음과 같습니다.

  "mappings":{
    "title": "descriptions",
    "completed": "done"
  }

title 관련 데이터베이스 개체의 필드는 GraphQL 형식 또는 REST 요청 및 응답 페이로드의 필드에 매핑 description 됩니다.

Azure SQL의 세션 컨텍스트 지원

보안의 추가 계층(예: RLS(행 수준 보안))을 사용하도록 설정하기 위해 DAB는 이제 SESSION_CONTEXT 통해 기본 Sql Server 데이터베이스로 데이터 전송을 지원합니다. 자세한 내용은 SESSION_CONTEXT 런 타임에서 데이터베이스 권한 부여로의 자세한 문서를 참조하세요.

PostgreSQL의 문서 내 중첩된 개체에 대한 필터 지원

PostgreSQL을 사용하면 이제 스키마에 정의된 개체 또는 배열 관계를 사용할 수 있습니다. 그러면 Azure SQL과 마찬가지로 중첩된 개체에서 필터 작업을 수행할 수 있습니다.

query {
  books(filter: { series: { name: { eq: "Foundation" } } }) {
    items {
      title
      year
      pages
    }
  }
}

Cosmos DB NoSQL에서 스칼라 목록 지원

이제 Cosmos DB에 스칼라 쿼리 List 기능이 추가되었습니다.

이 형식 정의를 고려합니다.

type Planet @model(name:"Planet") {
    id : ID,
    name : String,
    dimension : String,
    stars: [Star]
    tags: [String!]
}

이제 다음과 같은 목록을 가져오는 쿼리를 실행할 수 있습니다.

query ($id: ID, $partitionKeyValue: String) {
    planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
        tags
    }
}

로그 수준을 사용하여 향상된 로깅 지원

  • 및 가 각각 및 DevelopmentDebug 로 업데이트 Error 되는 경우 엔진 host.mode 의 기본 로그 수준입니다Production.
  • 엔진을 시작하는 동안 엔터티의 모든 열에 대해 노출된 필드 이름 및 기본 키와 같은 정보가 기록됩니다. 이 동작은 필드 매핑이 자동으로 생성될 때 형식에서도 발생합니다.
  • 로컬 실행 시나리오에서는 엔진 시작 중에 생성되고 실행되는 모든 쿼리가 수준에서 기록 Debug 됩니다.
  • 모든 엔터티에 대해 , 및 target.fieldscardinality 와 같은 source.fields관계 필드가 기록됩니다. 다대다 관계가 linking.object있는 경우 데이터베이스(또는 구성 파일에서)에서 유추된 , linking.source.fieldslinking.target.fields 가 기록됩니다.
  • 들어오는 모든 요청에 대해 요청의 역할 및 인증 상태가 기록됩니다.
  • CLI Microsoft.DataAPIBuilder 에서 버전은 해당 명령의 실행과 연결된 로그와 함께 기록됩니다.

업데이트된 CLI

  • --no-https-redirect 옵션은 명령에 추가 start 됩니다. 이 옵션을 사용하면 에서 로 httphttps 의 요청 자동 리디렉션을 방지할 수 있습니다.

  • MsSql에서 명령에서 를 사용하여 --set-session-context true 세션 컨텍스트를 init 사용하도록 설정할 수 있습니다. 샘플 명령은 다음 예제에 나와 있습니다.

    dab init --database-type mssql --connection-string "Connection String" --set-session-context true
    
  • 공급자, 대상 그룹 및 발급자와 같은 인증 세부 정보는 명령에서 , --auth.audience--auth.issuer.init 옵션을 --auth.provider사용하여 구성할 수 있습니다. 샘플 명령은 이 샘플에 나와 있습니다.

    dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
    
  • 엔터티 이름이 지정되지 않은 경우 사용자에게 친숙한 오류 메시지입니다.

버전 0.4.11의 새로운 기능

이 버전의 릴리스 정보 전체 목록은 GitHub https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha에서 확인할 수 있습니다.

섹션에 대한 data-source 업데이트된 JSON 스키마

구성 파일의 섹션은 data-source 지원되는 모든 데이터베이스에서 일관성을 유지하지만 각 데이터베이스에 사용자 지정 구성을 허용하도록 업데이트됩니다. 데이터베이스와 관련된 모든 속성을 그룹화하기 위한 새 섹션 options 이 도입되었습니다. 예를 들면 다음과 같습니다.

{
  "$schema": "https://dataapibuilder.azureedge.net/schemas/v0.4.11-alpha/dab.draft.schema.json",
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "database": "PlaygroundDB",
      "graphql-schema": "schema.gql"
    },
    "connection-string": "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;"
  }
}

섹션에서 사용할 수 있는 options 요소는 선택한 database-type에 따라 달라집니다.

Azure SQL 및 SQL Server의 문서 내에서 중첩된 개체에 대한 필터 지원

Azure SQL 및 SQL Server를 사용하면 스키마에 정의된 개체 또는 배열 관계를 사용하여 중첩된 개체에서 필터 작업을 수행할 수 있습니다.

query {
  books(filter: { series: { name: { eq: "Foundation" } } }) {
    items {
      title
      year
      pages
    }
  }
}

향상된 저장 프로시저 지원

REST 및 GraphQL의 저장 프로시저에 대한 전체 지원. 매개 변수가 있는 저장 프로시저가 이제 100% 지원됩니다. 저장 프로시저와 함께 데이터 API 작성기를 사용하는 방법을 알아보려면 저장 프로시저 설명서를 확인하세요.

Cosmos DB에 대해 이름이 바뀐 새 database-type

Cosmos DB를 사용하는 PostgreSQL API에 대한 지원이 추가되었습니다. 통합 섹션 data-source 을 사용하면 특성 database-type 이 데이터베이스 유형을 표시합니다. Cosmos DB는 여러 API를 지원하므로 현재 지원되는 데이터베이스 유형은 및 cosmosdb_postgresql입니다cosmosdb_nosql.

  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "database": "PlaygroundDB",
      "graphql-schema": "schema.gql"
    }
  }

에 대한 CLI 속성 이름 바꾸기 cosmosdb_nosql

이전 섹션에서 설명한 구성 변경 내용에 따라 이제 CLI 속성은 Cosmos DB NoSQL API에 따라 및 cosmosdb_nosql-containercosmosdb_nosql-database 이름이 변경됩니다.

dab init --database-type "cosmosdb_nosql" --graphql-schema schema.gql --cosmosdb_nosql-database PlaygroundDB  --cosmosdb_nosql-container "books" --connection-string "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;" --host-mode "Development"

이제 Postgres에서 관리 ID가 지원됨

이제 사용자는 구성에서 액세스 토큰을 지정하여 관리 ID로 인증할 수 있습니다. 또는 이제 사용자가 연결 문자열에서 암호를 지정할 수 없으며 런타임에서 기본 관리 ID 토큰을 가져오려고 시도합니다. 이 오류가 발생하면 연결 문자열의 암호 없이 연결을 시도합니다.

Azure MySQL에 대한 Microsoft Entra ID 사용자 인증 지원

Microsoft Entra ID 플러그 인을 사용하여 MySQL로 인증하기 위해 사용자 토큰을 암호 필드로 추가했습니다.

버전 0.3.7의 새로운 기능

이 버전의 릴리스 정보 전체 목록은 GitHub https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha에서 확인할 수 있습니다.

지원 보기

이제 REST 및 GraphQL에서 뷰가 모두 지원됩니다. 예를 들어 dbo.vw_books_details 보기가 있는 경우 다음 dab 명령을 사용하여 노출할 수 있습니다.

dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"

옵션은 source.key-fields 보기를 위해 기본 키로 탐색을 구현할 수 있도록 항목을 고유하게 식별하는 데 사용되는 뷰의 필드를 지정하는 데 사용됩니다. 보기가 호환되는지 여부에 따라 작업(예 create : 작업)을 사용하거나 사용하지 않도록 DAB를 구성하는 것은 개발자의 책임입니다.

저장 프로시저 지원

이제 REST 요청에 대해 저장 프로시저가 지원됩니다. 예를 들어 dbo.stp_get_all_cowritten_books_by_author 저장 프로시저가 있는 경우 다음 dab 명령을 사용하여 노출할 수 있습니다.

dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true

REST 엔드포인트를 호출할 때 URL 쿼리 문자열에 매개 변수를 전달할 수 있습니다.

http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov

참고

저장 프로시저를 호출할 때 특정 HTTP 동사를 허용하거나 거부하도록 작업(예 create : 작업)을 사용하거나 사용하지 않도록 DAB를 구성하는 것은 개발자의 책임입니다. 예를 들어 예제에 사용된 저장 프로시저의 경우 일부 데이터를 반환하는 것이 목적이라는 점을 감안할 때 작업만 허용하는 read 것이 좋습니다.

Microsoft Entra ID 인증

이제 Microsoft Entra ID 인증이 완전히 작동합니다. 자세한 내용은 Microsoft Entra ID로 인증을 참조하세요.

로컬 인증을 위한 새 시뮬레이터 인증 공급자

로컬로 개발할 때 인증된 요청 테스트를 간소화하기 위해 새 simulator 인증 공급자를 사용할 수 있습니다. 공급자 simulator 는 모든 요청을 인증된 것으로 처리하도록 Data API 작성기 엔진에 지시하는 구성 가능한 인증 공급자입니다. 자세한 내용은 로컬 인증을 참조하세요.

Azure Cosmos DB의 문서 내에서 중첩된 개체에 대한 필터 지원

Azure Cosmos DB를 사용하면 스키마에 정의된 개체 또는 배열 관계를 사용하여 중첩된 개체에서 필터 작업을 수행할 수 있습니다.

query {
  books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
    id
    name
  }
}