Udostępnij za pośrednictwem


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ń:

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

  1. Weryfikacja schematu
  2. Walidacja właściwości konfiguracji
  3. Walidacja uprawnień konfiguracji
  4. Walidacja połączenia z bazą danych
  5. Walidacja metadanych jednostek

Funkcje w wersji zapoznawczej

  • Początkowa obsługa usługi DWSQL. #1864
  • Obsługa wielu źródeł danych. #1709

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 falsewartość , 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ń:

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

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ę GraphQL
  • rest.disabled: Aby wyłączyć globalne punkty końcowe REST
  • graphql.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
    }

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 entitysekcji 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 jest Production i Development są aktualizowane odpowiednio do Error i Debug .
  • 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.fieldsi cardinality są rejestrowane. Jeśli istnieją relacje wiele-wiele, linking.object, linking.source.fieldsi linking.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 do start polecenia. Dzięki tej opcji można zapobiec automatycznemu przekierowywaniu żądań z http programu do https .

  • 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.audiencei --auth.issuer. w poleceniu init . 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-typeelementu .

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
  }
}