Udostępnij za pośrednictwem


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

Twórca tabelę SQL i dane

Twórca tabelę z fikcyjnymi danymi do użycia w tym przykładowym scenariuszu.

  1. 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.

  2. Twórca tabelę o nazwie Books z kolumnami id 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
    
  3. 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
    
  4. 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.

  1. Twórca typowy plik konfiguracji przy użyciu polecenia dab init.

    dab init --database-type "mssql" --host-mode "Development"
    
  2. Dodaj jednostkę Book przy użyciu polecenia dab add.

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. 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.

  1. 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.

  1. 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.

  1. Utwórz plik dab-config.Development.json. Dodaj następującą zawartość, aby użyć @env() funkcji w celu ustawienia connection-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')"
      }
    }
    
  2. Zapisz zmiany w pliku env, dab-config.json i dab-config. Development.json plików.

Konfiguracja testu

  1. Użyj polecenia dab start , aby sprawdzić, czy narzędzie jest uruchamiane zgodnie z oczekiwaniami.

    dab start
    
  2. 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.

  3. 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.

  4. 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.

  5. 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.