Sdílet prostřednictvím


Použití prostředí konfiguračních souborů s Tvůrcem rozhraní DATA API

Tento průvodce vás provede postupem cílení na vývojové prostředí pomocí konfiguračního souboru. Konfigurační soubory koncového výsledku by měly být dostatečně flexibilní, aby bylo možné v budoucnu přidat konfiguraci produkční databáze s minimálními změnami.

Požadavky

Create tabulky a dat SQL

Create tabulku s fiktivními daty, která se mají použít v tomto ukázkovém scénáři.

  1. Připojte se k SQL Serveru a databázi pomocí preferovaného klienta nebo nástroje. Mezi příklady patří mimo jiné: SQL Server Management Studio, Azure Data Studio a rozšíření SQL Server pro Visual Studio Code.

  2. Create tabulku Books se sloupci id aname.

    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. Vložte do tabulky čtyři ukázkové řádky Books knihy.

    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. Otestujte data pomocí jednoduchého SELECT * dotazu.

    SELECT * FROM dbo.Books
    

Create základní konfigurační soubor

Create konfigurační soubor směrného plánu pomocí rozhraní příkazového řádku DAB.

  1. Create typický konfigurační soubor pomocí dab init.

    dab init --database-type "mssql" --host-mode "Development"
    
  2. Přidejte entitu Book pomocí dab add.

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. Sledujte aktuální konfigurační soubor dab-config.json . Soubor by měl obsahovat základní implementaci rozhraní API s jednou entitou, koncovým bodem rozhraní REST API a koncovým bodem 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": "*"
                }
              ]
            }
          ]
        }
      }
    }
    

Create soubor proměnných prostředí

Teď přidejte soubor prostředí pro ukládání proměnných prostředí pro DAB.

  1. Create soubor s názvem .env ve stejném adresáři jako konfigurační soubory rozhraní příkazového řádku DAB.

Poznámka

Název .env souboru, například .gitignore a .editorconfig , nemá žádný název souboru, pouze příponu souboru. Název nerozlišuje velká a malá písmena, ale konvence je malá.

  1. Přidejte proměnnou DAB_ENVIRONMENT prostředí s hodnotou Development. Přidejte také proměnnou SQL_DOCKER_CONNECTION_STRING prostředí s databázovým připojovací řetězec.

    SQL_DOCKER_CONNECTION_STRING=<connection-string>
    DAB_ENVIRONMENT=Development
    

konfigurační soubor prostředí Create

Nakonec přidejte konfigurační soubor pro vývoj s rozdílem mezi aktuální konfigurací a požadovanou konfigurací prostředí.

  1. Vytvořte soubor dab-config.Development.json. Přidejte následující obsah, který použije @env() funkci k nastavení hodnoty connection-string ve vývojovém prostředí.

    {
      "$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. Uložte změny v souborech .env, dab-config.json a dab-config. Development.json souborů.

Nastavení testu

  1. Pomocí dab start příkazu ověřte, že se nástroj spustí podle očekávání.

    dab start
    
  2. Výstup nástroje by měl obsahovat adresu, která se má použít k přechodu na spuštěné rozhraní API.

          Successfully completed runtime initialization.
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: <http://localhost:5000>
    info: Microsoft.Hosting.Lifetime[0]
    

    Tip

    V tomto příkladu běží aplikace na localhost portu 5000. Spuštěná aplikace může mít jinou adresu a port.

  3. Nejprve zkuste rozhraní API ručně tím, že na adresu vystavíte požadavek /api/BookGET.

    Tip

    V tomto příkladu by adresa URL byla https://localhost:5000/api/Book. Na tuto adresu URL můžete přejít pomocí webového prohlížeče.

  4. Dále přejděte na stránku dokumentace ke Swaggeru na adrese /swagger.

    Tip

    V tomto příkladu by adresa URL byla <https://localhost:5000/swagger. Na tuto adresu URL můžete znovu přejít pomocí webového prohlížeče.

  5. Nakonec vyzkoušejte koncový bod GraphQL tak, že přejdete na /graphql a spustíte tuto operaci.

    query {
      books(filter: {
        pages: {
          lt: 500
        }
      }) {
        items {
          id
          title
          year
          pages
        }
      }
    }
    

    Tip

    V tomto příkladu by adresa URL byla https://localhost:5000/graphql. Na tuto adresu URL můžete znovu přejít pomocí webového prohlížeče.