Używanie środowisk plików konfiguracji z konstruktorem interfejsu API danych
W tym przewodniku przedstawiono procedurę kierowania środowiska deweloperskiego przy użyciu pliku konfiguracji. Pliki konfiguracji wyników końcowych powinny być wystarczająco elastyczne, aby można było dodać konfigurację produkcyjnej bazy danych w przyszłości z minimalnymi zmianami.
Wymagania wstępne
- Istniejąca baza danych SQL.
- Klient zarządzania danymi
- Jeśli nie masz zainstalowanego klienta, zainstaluj program Azure Data Studio
- Interfejs wiersza polecenia konstruktora interfejsu API danych. Instalowanie interfejsu wiersza polecenia
Twórca tabelę SQL i dane
Twórca tabelę z fikcyjnymi danymi do użycia w tym przykładowym scenariuszu.
Nawiąż połączenie z serwerem SQL i bazą danych przy użyciu preferowanego klienta lub narzędzia. Przykłady obejmują, ale nie są ograniczone do: SQL Server Management Studio, narzędzia Azure Data Studio i rozszerzenia SQL Server dla Visual Studio Code.
Twórca tabelę o nazwie
Books
z kolumnamiid
i .name
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
Wstaw do
Books
tabeli cztery przykładowe wiersze książki.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
Przetestuj dane przy użyciu prostego
SELECT *
zapytania.SELECT * FROM dbo.Books
Twórca podstawowy plik konfiguracji
Twórca pliku konfiguracji punktu odniesienia przy użyciu interfejsu wiersza polecenia języka DAB.
Twórca typowy plik konfiguracji przy użyciu polecenia
dab init
.dab init --database-type "mssql" --host-mode "Development"
Dodaj jednostkę Book przy użyciu polecenia
dab add
.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Obserwuj bieżący plik konfiguracji dab-config.json . Plik powinien zawierać podstawową implementację interfejsu API z pojedynczą jednostką, punktem końcowym interfejsu API REST i punktem końcowym GraphQL.
{ "$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": "*" } ] } ] } } }
plik zmiennych środowiskowych Twórca
Teraz dodaj plik środowiska do przechowywania zmiennych środowiskowych dla języka DAB.
- Twórca plik o nazwie
.env
w tym samym katalogu co pliki konfiguracji interfejsu wiersza polecenia języka DAB.
Uwaga
Nazwa .env
pliku, na przykład .gitignore
i .editorconfig
pliki, nie ma nazwy pliku, tylko rozszerzenie pliku. Nazwa jest niewrażliwa na wielkość liter, ale konwencja ma małe litery.
Dodaj zmienną środowiskową
DAB_ENVIRONMENT
z wartościąDevelopment
. Ponadto dodaj zmienną środowiskowąSQL_DOCKER_CONNECTION_STRING
przy użyciu parametry połączenia bazy danych.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
plik konfiguracji środowiska Twórca
Na koniec dodaj plik konfiguracji programowania z różnicą między bieżącą konfiguracją i żądaną konfiguracją środowiska.
Utwórz plik
dab-config.Development.json
. Dodaj następującą zawartość, aby użyć@env()
funkcji w celu ustawieniaconnection-string
wartości w środowisku projektowym.{ "$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')" } }
Zapisz zmiany w pliku env, dab-config.json i dab-config. Development.json plików.
Konfiguracja testu
Użyj polecenia
dab start
, aby sprawdzić, czy narzędzie jest uruchamiane zgodnie z oczekiwaniami.dab start
Dane wyjściowe narzędzia powinny zawierać adres używany do przechodzenia do uruchomionego interfejsu API.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Porada
W tym przykładzie aplikacja jest uruchomiona na
localhost
porcie 5000. Uruchomiona aplikacja może mieć inny adres i port.Najpierw spróbuj ręcznie użyć interfejsu API, wysyłając żądanie GET do
/api/Book
.Porada
W tym przykładzie adres URL będzie następujący:
https://localhost:5000/api/Book
. Możesz przejść do tego adresu URL przy użyciu przeglądarki internetowej.Następnie przejdź do strony dokumentacji struktury Swagger pod adresem
/swagger
.Porada
W tym przykładzie adres URL będzie następujący:
<https://localhost:5000/swagger
. Ponownie możesz przejść do tego adresu URL przy użyciu przeglądarki internetowej.Na koniec spróbuj użyć punktu końcowego GraphQL, przechodząc do
/graphql
i uruchamiając tę operację.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Porada
W tym przykładzie adres URL będzie następujący:
https://localhost:5000/graphql
. Ponownie możesz przejść do tego adresu URL przy użyciu przeglądarki internetowej.