Co nowego w wersji 0.11 i starszych
Informacje o wersji i informacje o wszystkich aktualizacjach i ulepszeniach w narzędziu Data API Builder w wersji 0.11 lub starszej.
Co nowego w wersji 0.11
Informacje o wersji i informacje o aktualizacjach i ulepszeniach w narzędziu Data API Builder w wersji 0.10.
Obsługa języka GraphQL dla usługi SQL Data Warehouse
Usługa SQL Data Warehouse obsługuje teraz punkty końcowe GraphQL.
Ulepszone filtrowanie w usłudze Azure Cosmos DB dla NoSQL
Usługa Azure Cosmos DB for NoSQL obsługuje teraz filtry zagnieżdżone, zmienne identyfikatorów i wyszukiwanie tablic ciągów za pomocą contains
operatora .
Włączanie zbierania danych aplikacji za pomocą interfejsu wiersza polecenia
Teraz możesz użyć interfejsu wiersza polecenia (CLI) języka DAB, aby włączyć zbieranie danych za pomocą usługi Application Insights.
Co nowego w wersji 0.10
Informacje o wersji i informacje o aktualizacjach i ulepszeniach w narzędziu Data API Builder w wersji 0.10.
Nasze skupienie się na stabilności w miarę zbliżania się do ogólnej dostępności. Chociaż nie wszystkie wysiłki w zakresie jakości kodu i stabilności aparatu zostały szczegółowo opisane w tym artykule, ta lista zawiera istotne aktualizacje.
Informacje o wersji usługi GitHub
Przejrzyj te strony wersji, aby uzyskać pełną listę wszystkich zmian i ulepszeń:
- 2024-02-06 — wersja 0.10.23
- 2024-01-31 — wersja 0.10.21
- 2023-12-07 — wersja 0.10.11
Buforowanie w pamięci
W wersji 0.10 wprowadzono buforowanie w pamięci dla punktów końcowych REST i GraphQL. Ta funkcja, przeznaczona do wewnętrznego buforowania, stanowi podstawy do przyszłego rozproszonego buforowania. Buforowanie w pamięci zmniejsza obciążenie bazy danych z powtarzających się zapytań.
Scenariusze buforowania
- Zmniejszenie obciążenia bazy danych: pamięć podręczna przechowuje wyniki kosztownych zapytań, eliminując konieczność powtarzających się wywołań bazy danych.
- Poprawa skalowalności interfejsu API: buforowanie obsługuje częstsze wywołania interfejsu API bez zwiększania liczby żądań bazy danych, co znacznie zwiększa możliwości interfejsu API.
Zmiany konfiguracji
Ustawienia buforowania są dostępne w runtime
sekcji i dla każdej jednostki, oferując szczegółową kontrolę.
Ustawienia środowiska uruchomieniowego:
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
- Buforowanie jest domyślnie wyłączone.
- Domyślny czas wygaśnięcia (TTL) to 5 sekund.
Ustawienia jednostki:
{
"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
}
}
}
Weryfikacja konfiguracji w interfejsie wiersza polecenia
Interfejs wiersza polecenia obsługuje dab validate
teraz sprawdzanie plików konfiguracji pod kątem błędów lub niespójności, zwiększając przepływ pracy programowania.
Kroki weryfikacji
- Weryfikacja schematu
- Walidacja właściwości konfiguracji
- Walidacja uprawnień konfiguracji
- Walidacja połączenia z bazą danych
- Walidacja metadanych jednostek
Funkcje w wersji zapoznawczej
Co nowego w wersji 0.9
Poniżej przedstawiono szczegółowe informacje na temat najbardziej odpowiednich zmian i ulepszeń w narzędziu Data API Builder 0.9.
Informacje o wersji usługi GitHub
Przejrzyj te strony wersji, aby uzyskać pełną listę wszystkich zmian i ulepszeń:
Włączanie usługi Application Insights podczas samodzielnego hostowania bazy danych DAB
Dzienniki można teraz przesyłać strumieniowo do usługi Application Insights w celu uzyskania lepszego środowiska monitorowania i debugowania, zwłaszcza gdy konstruktor interfejsu API danych jest wdrażany na platformie Azure. telemetry
Nową sekcję można dodać do pliku konfiguracji w celu włączenia i skonfigurowania integracji z usługą 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
}
}
Przeczytaj wszystkie szczegóły na stronie dokumentacji usługi Application Insights .
Obsługa ignorowania dodatkowych pól w treści żądania REST
Dzięki nowej request-body-strict
opcji możesz teraz zdecydować, czy dodatkowe pole w ładunku REST generuje błąd (zachowanie domyślne, zgodność z poprzednimi wersjami) lub dodatkowe pola są dyskretnie ignorowane.
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
...
}
Ustawiając request-body-strict
opcję na false
wartość , pola, które nie mają mapowania na powiązany obiekt bazy danych, są ignorowane bez generowania żadnego błędu.
Dodawanie nazwy aplikacji dla mssql
połączeń
Konstruktor interfejsu API danych wprowadza teraz w parametrach połączenia tylko dla mssql
typów baz danych wartość dab-<version>
jako Application Name
właściwość, co ułatwia identyfikowanie połączeń na serwerze bazy danych. Jeśli Application Name
element jest już obecny w parametrach połączenia, do niego jest dołączana wersja konstruktora interfejsu API danych.
Obsługa time
typu danych w mssql
time
typ danych jest teraz obsługiwany w mssql
bazach danych.
Mutacje na stole z wyzwalaczami dla mssql
Mutacje są teraz w pełni obsługiwane w tabelach z wyzwalaczami dla mssql
baz danych.
Zapobieganie aktualizowaniu/wstawiania pól tylko do odczytu w tabeli według użytkownika
Automatycznie wykrywaj pola tylko do odczytu bazy danych i zapobiegaj aktualizacji/wstawiania tych pól przez użytkownika.
Co nowego w wersji 0.8
Poniżej przedstawiono szczegółowe informacje na temat najbardziej odpowiednich zmian i ulepszeń w narzędziu Data API Builder 0.8.
Informacje o wersji usługi GitHub
Przejrzyj te strony wersji, aby uzyskać pełną listę wszystkich zmian i ulepszeń:
- 0.8.52: strona wydania usługi GitHub
- 0.8.51: strona wydania usługi GitHub
- 0.8.50: strona wydania usługi GitHub
- 0.8.49: strona wydania usługi GitHub
Dodano obsługę pliku env
Zmienne środowiskowe chronią wpisy tajne przed ujawnieniem zwykłego tekstu i umożliwiają zamianę wartości w różnych ustawieniach. Jednak te zmienne muszą być ustawione w zakresie użytkownika lub komputera, co może prowadzić do "krwawienia" między projektami, jeśli nazwy zmiennych są zduplikowane. Lepszą alternatywą są pliki środowiska. Aby uzyskać więcej informacji, zobacz pliki środowiskowe w narzędziu Data API Builder — blog.
Co nowego w wersji 0.7.6
W tym artykule opisano informacje o wersji 0.7.6.
Żądania ściągnięcia w usłudze GitHub
- Rozwiązywanie problemu z odmową dostępu do filtru dla usługi Cosmos
- Poprawka usterki uwierzytelniania pola usługi Azure Cosmos DB, gdy element graphql ma wartość "true", include to "*"
Początkowa obsługa tworzenia dokumentu w interfejsie OpenAPI w wersji 3-0-1
Konstruktor interfejsu API danych obsługuje standard OpenAPI służący do generowania i uwidaczniania dokumentów opisowych zawierających przydatne informacje o usłudze. Te dokumenty są tworzone na podstawie pliku konfiguracji środowiska uruchomieniowego i metadanych dla każdego obiektu bazy danych. Te obiekty są skojarzone z jednostką z obsługą architektury REST zdefiniowaną w tym samym pliku konfiguracji. Są one następnie udostępniane za pośrednictwem interfejsu użytkownika i udostępniane jako plik serializowany.
Aby uzyskać więcej informacji na temat specyfiki interfejsu OpenAPI i konstruktora interfejsu API danych, zobacz OpenAPI.
Zezwalanie na łączenie plików konfiguracji
Dodaje możliwość automatycznego scalania dwóch plików konfiguracji.
Istnieje możliwość zachowania wielu par punktów odniesienia i plików konfiguracji specyficznych dla środowiska w celu uproszczenia zarządzania ustawieniami specyficznymi dla środowiska. Na przykład można zachować oddzielne konfiguracje na potrzeby programowania i produkcji. Ten krok obejmuje posiadanie podstawowego pliku konfiguracji, który zawiera wszystkie typowe ustawienia między różnymi środowiskami. Następnie ustawiając zmienną DAB_ENVIRONMENT
można kontrolować, które pliki konfiguracji mają zostać scalone w celu użycia przez konstruktora interfejsu API danych.
Aby uzyskać więcej informacji, zobacz Dokumentacja interfejsu wiersza polecenia.
Wykonywanie mutacji GraphQL i REST w transakcji
Konstruktor interfejsu API danych tworzy transakcje bazy danych w celu wykonywania niektórych typów żądań GraphQL i REST.
Istnieje wiele żądań, które obejmują wykonanie więcej niż jednego zapytania bazy danych. Aby na przykład zwrócić wyniki aktualizacji, najpierw należy wykonać zapytanie dotyczące aktualizacji, a następnie przed zwróceniem należy odczytać nowe wartości. Gdy żądanie wymaga wykonania wielu zapytań bazy danych, konstruktor interfejsu API danych wykonuje teraz te zapytania bazy danych w ramach jednej transakcji.
Więcej informacji na temat tej funkcji można uzyskać w kontekście rest w dokumentacji REST i dokumentacji programu GraphQL w dokumentacji programu GraphQL.
Co nowego w wersji 0.6.14
W tym artykule opisano poprawkę dla wersji z marca 2023 r. dla konstruktora interfejsu API danych dla usługi Azure Databases.
Poprawki błędów
- Rozwiązywanie problemu z odmowam dostępu do filtru zapytań dla usługi Cosmos.
- Usługa Cosmos DB obecnie nie obsługuje autoryzacji na poziomie pola, aby uniknąć sytuacji, gdy użytkownicy przypadkowo przekażą uprawnienia w
field
konfiguracji środowiska uruchomieniowego, dodaliśmy sprawdzanie poprawności.
Co nowego w wersji 0.6.13
Pełna lista informacji o wersji dla tej wersji jest dostępna w witrynie GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.
Nowe polecenie interfejsu wiersza polecenia służące do eksportowania schematu GraphQL
Nowa opcja jest dodawana do eksportowania schematu GraphQL. Spowoduje to uruchomienie serwera DAB, a następnie wysłanie do niego zapytania w celu pobrania schematu przed zapisaniem go w podanej lokalizacji.
dab export --graphql -c dab-config.development.json -o ./schemas
To polecenie generuje plik schematu GraphQL w katalogu ./schemas. Ścieżka do pliku konfiguracji jest opcjonalnym parametrem, który domyślnie ma wartość "dab-config.json", chyba że "dab-config".<>DAB_ENVIRONMENT.json istnieje, gdzie DAB_ENVIRONMENT jest zmienną środowiskową.
Obsługa zasad bazy danych na potrzeby tworzenia akcji dla programu MsSql
Zasady bazy danych są teraz obsługiwane dla wszystkich operacji CRUD (Create, Read, Update, Delete) dla programu MsSql. Na przykład:
"entities":{
"Revenue":{
"source": "revenues",
"permissions":[
"role": "authenticated",
"actions": [
{
"action": "Create",
"policy": {
"database": "@item.revenue gt 0"
}
},
"read",
"update",
"delete"
]
]
}
}
Poprzednia konfiguracja Revenue
jednostki wskazuje, że użytkownik wykonujący operację wstawiania z rolą Authenticated
nie może utworzyć rekordu z przychodem mniejszym niż lub równy zero.
Możliwość konfigurowania ścieżki GraphQL i wyłączania punktów końcowych REST i GraphQL globalnie za pośrednictwem interfejsu wiersza polecenia
Teraz obsługujemy trzy kolejne opcje init
polecenia:
graphql.path
: Aby udostępnić niestandardową ścieżkę GraphQLrest.disabled
: Aby wyłączyć globalne punkty końcowe RESTgraphql.disabled
: Aby wyłączyć punkty końcowe GraphQL globalnie
Na przykład init
polecenie wygeneruje plik konfiguracji z sekcją środowiska uruchomieniowego:
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"
},
}
Pola kluczy obowiązkowe do dodawania i aktualizowania widoków w interfejsie wiersza polecenia
Użytkownik musi teraz podać pola kluczy (do użycia jako klucz podstawowy) za pośrednictwem uwidocznionej opcji source.key-fields
przy każdym dodaniu nowego widoku bazy danych (za pośrednictwem dab add
) do konfiguracji za pośrednictwem interfejsu wiersza polecenia. Ponadto za każdym razem, gdy aktualizacja niczego w konfiguracji widoku (za pośrednictwem dab update
) w pliku konfiguracji za pośrednictwem interfejsu wiersza polecenia, jeśli aktualizacja zmieni wszystko, co odnosi się do definicji widoku w bazowej bazie danych (na przykład typ źródła, pola klucza), należy również określić pola kluczy w poleceniu aktualizacji.
Jednak nadal obsługujemy widoki bez jawnego klucza podstawowego określonego w konfiguracji, ale konfiguracja takich widoków musi być zapisywana bezpośrednio w pliku konfiguracji.
Na przykład dab add
polecenie służy do dodawania widoku:
dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true
To polecenie generuje konfigurację dla books_view
jednostki, która jest podobna do następującego przykładu:
"books_view": {
"source": {
"type": "view",
"object": "books_view",
"key-fields":[
"id"
]
},
"permissions": [
{
"role": "anonymous",
"actions": [
"*"
]
}
],
"rest": true,
"graphql": true
}
Zastępowanie linku usługi Azure Storage linkem do usługi GitHub
Ponieważ daB jest teraz open source, nie musimy pobierać artefaktów z konta magazynu. Zamiast tego możemy pobrać je bezpośrednio z usługi GitHub. W związku z tym linki są odpowiednio aktualizowane.
Co nowego w wersji 0.5.34
Pełna lista informacji o wersji dla tej wersji jest dostępna w witrynie GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.
Honorowanie flagi REST i GraphQL na poziomie środowiska uruchomieniowego
Dodano nową opcję umożliwiającą włączanie lub wyłączanie żądań REST/GraphQL dla wszystkich jednostek na poziomie środowiska uruchomieniowego. W przypadku wyłączenia globalnie żadne jednostki nie będą dostępne za pośrednictwem żądań REST lub GraphQL niezależnie od ustawień poszczególnych jednostek. W przypadku włączenia globalnego poszczególne jednostki są domyślnie dostępne, chyba że jawnie wyłączone przez ustawienia na poziomie jednostki.
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/graphql"
}
}
Identyfikator korelacji w dziennikach żądań
Aby ułatwić debugowanie, dołączamy identyfikator korelacji do wszystkich dzienników generowanych podczas żądania. Ponieważ wiele żądań może zostać złożonych, posiadanie sposobu identyfikowania dzienników do określonego żądania jest ważne, aby ułatwić proces debugowania.
Obsługa operacji symboli wieloznacznych dla procedur składowanych w aparatach i interfejsie wiersza polecenia
W przypadku procedur składowanych role można teraz skonfigurować za pomocą akcji z symbolami wieloznacznymi *
, ale rozszerza ją tylko do execute
akcji.
Co nowego w wersji 0.5.32
Pełna lista informacji o wersji dla tej wersji jest dostępna w witrynie GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.
Możliwość dostosowywania ścieżki rest za pomocą interfejsu wiersza polecenia
W poleceniu wprowadzono init
nową opcję --rest.path
dostosowywania ścieżki dla interfejsów API REST.
dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api"
To polecenie konfiguruje punkty końcowe REST z prefiksem rest-api
. Pełna ścieżka dla punktów końcowych REST to https://<dab-server>/rest-api/<entity-name>
Jeśli --rest.path
opcja nie jest używana, punkty końcowe REST są konfigurowane z domyślnym prefiksem api
. Pełna ścieżka w tym przypadku jest następująca: https://<dab-server>/api/<entity-name>
Obraz kontenera konstruktora interfejsu API danych w mar
Oficjalne obrazy platformy Docker dla konstruktora interfejsu API danych dla baz danych platformy Azure są teraz dostępne w rejestrze artefaktów firmy Microsoft.
Aby uzyskać instrukcje dotyczące korzystania z opublikowanych obrazów, zobacz Microsoft Container Registry — Data API builder.
Obsługa fragmentów GraphQL
Fragmenty są częścią zapytania graphQL wielokrotnego użytku. W scenariuszach, w których te same pola muszą być odpytywane w różnych zapytaniach, powtarzające się pola można skonsolidować w jeden składnik wielokrotnego użytku nazywany fragmentem.
Aby uzyskać więcej informacji na temat fragmentów, zobacz GraphQL queries (Zapytania GraphQL).
W następnej kolejności zdefiniowano fragment wywoływany description
na typie Character
:
fragment description on Character {
name
homePlanet
primaryFunction
}
Zapytanie GraphQL korzystające z zdefiniowanego fragmentu można skonstruować, jak pokazano tutaj:
{
Player1: Player{
id
playerDescription{
...description
}
}
}
W przypadku poprzedniego zapytania wynik zawiera następujące pola:
{
Player1: Player{
id
playerDescription{
name
homePlanet
primaryFunction
}
}
}
Włączanie rozwiązania BinSkim i naprawianie alertów Policheck
BinSkim to przenośny skaner plików wykonywalnych (PE), który weryfikuje ustawienia kompilatora/konsolidatora oraz inne cechy binarne związane z zabezpieczeniami. Zadanie potoku w static-tools
potoku jest dodawane do wykonywania skanowania BinSkim przy każdym uruchomieniu potoku. System PoliCheck to zestaw narzędzi i danych, które pomagają zachować zgodność z wymaganiami dotyczącymi weryfikacji tekstu i kodu w ramach ogólnej globalnej polityki gotowości. Alerty generowane przez skanowania policheck są stałe, aby być zgodne z poufnymi terminami.
Co nowego w wersji 0.5.0
Pełna lista informacji o wersji dla tej wersji jest dostępna w witrynie GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.
Publiczny schemat JSON
Publiczny schemat JSON zapewnia obsługę funkcji "intellisense", jeśli używasz środowiska IDE, takiego jak Program Visual Studio Code, który obsługuje schematy JSON. Plik basic-empty-dab-config.json
w folderze samples
ma przykładowy punkt wyjścia podczas ręcznego dab-config.json
tworzenia pliku.
Publiczny Microsoft.DataApiBuilder
pakiet NuGet
Microsoft.DataApiBuilder
Jest teraz dostępny jako publiczny pakiet NuGet tutaj , aby ułatwić instalację przy użyciu narzędzia dotnet w następujący sposób:
dotnet tool install --global Microsoft.DataApiBuilder
Nowa execute
akcja dla procedur składowanych w usłudze Azure SQL
Nowa execute
akcja jest wprowadzana jako jedyna dozwolona akcja w permissions
sekcji pliku konfiguracji tylko wtedy, gdy typ źródłowy jest kopią zapasową jednostki .stored-procedure
Domyślnie POST
tylko metoda jest dozwolona dla takich jednostek, a tylko operacja GraphQL mutation
jest skonfigurowana z prefiksem execute
dodanym do ich nazwy. Jawne określenie dozwolonego methods
w rest
sekcji pliku konfiguracji zastępuje to zachowanie. Podobnie w przypadku programu GraphQL operation
w graphql
sekcji można zastąpić query
zamiast tego. Aby uzyskać więcej informacji, zobacz widoki i procedury składowane.
Nowa mappings
sekcja
W sekcji w mappings
każdej entity
sekcji mapowania między nazwami pól obiektów bazy danych i odpowiadającymi im nazwami pól uwidocznionych są definiowane zarówno dla punktów końcowych GraphQL, jak i REST.
Format to:
<database_field>: <entity_field>
Na przykład:
"mappings":{
"title": "descriptions",
"completed": "done"
}
Pole title
w powiązanym obiekcie bazy danych jest mapowane na description
pole w typie GraphQL lub w ładunku żądania REST i odpowiedzi.
Obsługa kontekstu sesji w usłudze Azure SQL
Aby włączyć dodatkową warstwę zabezpieczeń (na przykład zabezpieczenia na poziomie wiersza), usługa DAB obsługuje teraz wysyłanie danych do bazowej bazy danych programu Sql Server za pośrednictwem SESSION_CONTEXT. Aby uzyskać więcej informacji, zapoznaj się z tym szczegółowym dokumentem na temat SESSION_CONTEXT: Środowisko uruchomieniowe do autoryzacji bazy danych.
Obsługa filtrowania obiektów zagnieżdżonych w dokumencie w usłudze PostgreSQL
Dzięki usłudze PostgreSQL można teraz używać relacji obiektu lub tablicy zdefiniowanej w schemacie, co umożliwia wykonywanie operacji filtrowania na zagnieżdżonych obiektach, podobnie jak w przypadku usługi Azure SQL.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Obsługa listy skalarnych w bazie danych Cosmos DB NoSQL
Możliwość wykonywania zapytań List
dotyczących skalarów jest teraz dodawana dla usługi Cosmos DB.
Rozważ tę definicję typu.
type Planet @model(name:"Planet") {
id : ID,
name : String,
dimension : String,
stars: [Star]
tags: [String!]
}
Teraz można uruchomić zapytanie, które pobiera listę, na przykład
query ($id: ID, $partitionKeyValue: String) {
planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
tags
}
}
Ulepszona obsługa rejestrowania przy użyciu poziomu dziennika
- Domyślne poziomy dziennika dla aparatu, gdy
host.mode
jestProduction
iDevelopment
są aktualizowane odpowiednio doError
iDebug
. - Podczas uruchamiania aparatu dla każdej kolumny jednostki są rejestrowane informacje, takie jak uwidocznione nazwy pól i klucz podstawowy. To zachowanie występuje nawet w przypadku automatycznego generowania mapowania pól.
- W scenariuszu wykonywania lokalnego wszystkie zapytania generowane i wykonywane podczas uruchamiania aparatu są rejestrowane na
Debug
poziomie. - Dla każdej jednostki pola relacji, takie jak
source.fields
,target.fields
icardinality
są rejestrowane. Jeśli istnieją relacje wiele-wiele,linking.object
,linking.source.fields
ilinking.target.fields
wnioskowane z bazy danych (lub z pliku konfiguracji) są rejestrowane. - Dla każdego żądania przychodzącego jest rejestrowana rola i stan uwierzytelniania żądania.
- W interfejsie wiersza polecenia jest rejestrowana
Microsoft.DataAPIBuilder
wersja wraz z dziennikami skojarzonymi z wykonaniem odpowiedniego polecenia.
Zaktualizowany interfejs wiersza polecenia
--no-https-redirect
opcja jest dodawana dostart
polecenia. Dzięki tej opcji można zapobiec automatycznemu przekierowywaniu żądań zhttp
programu dohttps
.W programie MsSql kontekst sesji można włączyć za pomocą
--set-session-context true
polecenia .init
Przykładowe polecenie jest pokazane w tym przykładzie:dab init --database-type mssql --connection-string "Connection String" --set-session-context true
Szczegóły uwierzytelniania, takie jak dostawca, odbiorcy i wystawca, można skonfigurować przy użyciu opcji
--auth.provider
,--auth.audience
i--auth.issuer.
w poleceniuinit
. Przykładowe polecenie jest wyświetlane w tym przykładzie:dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
Przyjazne dla użytkownika komunikaty o błędach, gdy nazwa jednostki nie jest określona.
Co nowego w wersji 0.4.11
Pełna lista informacji o wersji dla tej wersji jest dostępna w witrynie GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.
Zaktualizowano schemat JSON dla data-source
sekcji
Sekcja data-source
w pliku konfiguracji jest aktualizowana tak, aby była spójna we wszystkich obsługiwanych bazach danych, ale nadal zezwala każdej bazie danych na konfiguracje niestandardowe. Wprowadzono nową sekcję options
umożliwiającą grupowanie wszystkich właściwości specyficznych dla bazy danych. Na przykład:
{
"$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;"
}
}
Elementy dostępne w options
sekcji zależą od wybranego database-type
elementu .
Obsługa filtrowania obiektów zagnieżdżonych w dokumencie w usługach Azure SQL i SQL Server
Za pomocą usług Azure SQL i SQL Server można użyć relacji obiektu lub tablicy zdefiniowanej w schemacie, co umożliwia wykonywanie operacji filtrowania na zagnieżdżonych obiektach.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Ulepszona obsługa procedury składowanej
Pełna obsługa procedury składowanej w usługach REST i GraphQL. Procedura składowana z parametrami jest teraz obsługiwana w 100%. Zapoznaj się z dokumentacją procedur składowanych , aby dowiedzieć się, jak używać konstruktora interfejsu API danych z procedurami składowanymi.
Nowa database-type
nazwa wartości dla usługi Cosmos DB
Dodaliśmy obsługę interfejsu API PostgreSQL z usługą Cosmos DB. W konsolidowanej data-source
sekcji atrybut database-type
określa typ bazy danych. Ponieważ usługa Cosmos DB obsługuje wiele interfejsów API, obecnie obsługiwane typy baz danych to cosmosdb_nosql
i cosmosdb_postgresql
.
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
}
}
Zmienianie nazw właściwości interfejsu wiersza polecenia dla cosmosdb_nosql
Zgodnie ze zmianami konfiguracji opisanymi w poprzednich sekcjach właściwości interfejsu wiersza polecenia są odpowiednio zmieniane jako cosmosdb_nosql-database
i cosmosdb_nosql-container
dla interfejsu API NoSQL usługi Cosmos DB.
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"
Tożsamość zarządzana jest teraz obsługiwana w usłudze Postgres
Teraz użytkownik może również określić token dostępu w konfiguracji, aby uwierzytelnić się przy użyciu tożsamości zarządzanej. Alternatywnie użytkownik po prostu nie może określić hasła w parametrach połączenia, a środowisko uruchomieniowe próbuje pobrać domyślny token tożsamości zarządzanej. Jeśli to nie powiedzie się, połączenie zostanie podjęta bez hasła w parametrach połączenia.
Obsługa uwierzytelniania użytkownika microsoft Entra ID dla usługi Azure MySQL
Dodano token użytkownika jako pole hasła do uwierzytelniania za pomocą programu MySQL za pomocą wtyczki Microsoft Entra ID.
Co nowego w wersji 0.3.7
Pełna lista informacji o wersji dla tej wersji jest dostępna w witrynie GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.
Wyświetlanie pomocy technicznej
Widoki są teraz obsługiwane zarówno w interfejsie REST, jak i w narzędziu GraphQL. Jeśli masz widok, na przykład dbo.vw_books_details
można go uwidocznić za pomocą następującego dab
polecenia:
dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"
Opcja source.key-fields
służy do określania, które pola z widoku są używane do unikatowego identyfikowania elementu, dzięki czemu można zaimplementować nawigację według klucza podstawowego również dla widoków. Jest to odpowiedzialność dewelopera konfigurującego daB w celu włączenia lub wyłączenia akcji (na przykład akcji) w zależności od tego, create
czy widok jest aktualizowalny, czy nie.
Obsługa procedur składowanych
Procedury składowane są teraz obsługiwane w przypadku żądań REST. Jeśli masz procedurę składowaną, na przykład dbo.stp_get_all_cowritten_books_by_author
można ją uwidocznić za pomocą następującego dab
polecenia:
dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true
Parametr można przekazać w ciągu zapytania adresu URL podczas wywoływania punktu końcowego REST:
http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov
Uwaga
Jest to odpowiedzialność dewelopera konfigurującego daB w celu włączania lub wyłączania akcji (na przykład create
akcji) zezwalania lub odrzucania określonych czasowników HTTP podczas wywoływania procedury składowanej. Na przykład w przypadku procedury składowanej użytej w przykładzie, biorąc pod uwagę, że jej celem jest zwrócenie niektórych danych, warto zezwolić tylko na read
działanie.
Uwierzytelnianie za pomocą identyfikatora entra firmy Microsoft
Uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft działa teraz w pełni. Aby uzyskać więcej informacji, zobacz uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft.
Nowy dostawca uwierzytelniania symulatora na potrzeby uwierzytelniania lokalnego
Aby uprościć testowanie uwierzytelnionych żądań podczas tworzenia lokalnego, dostępny jest nowy simulator
dostawca uwierzytelniania. Dostawca simulator
jest konfigurowalnym dostawcą uwierzytelniania, który nakazuje aparatowi konstruktora interfejsu API danych traktowanie wszystkich żądań jako uwierzytelnionych. Więcej szczegółów znajduje się tutaj: Uwierzytelnianie lokalne
Obsługa filtrowania obiektów zagnieżdżonych w dokumencie w usłudze Azure Cosmos DB
W usłudze Azure Cosmos DB można użyć relacji obiektu lub tablicy zdefiniowanej w schemacie, co umożliwia wykonywanie operacji filtrowania na zagnieżdżonych obiektach.
query {
books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
id
name
}
}