Megosztás a következőn keresztül:


Konfigurációs fájlkörnyezetek használata a Data API Builderrel

Ez az útmutató végigvezeti a fejlesztési környezet konfigurációs fájllal történő megcélzásának lépésein. A végeredmény konfigurációs fájljainak elég rugalmasnak kell lenniük ahhoz, hogy az éles adatbázis konfigurációja a jövőben minimális módosításokkal hozzáadható legyen.

Előfeltételek

SQL-tábla és -adatok Létrehozás

Létrehozás egy táblát, amely fiktív adatokat tartalmaz ebben a példaforgatókönyvben.

  1. Csatlakozzon az SQL Serverhez és az adatbázishoz az előnyben részesített ügyfél vagy eszköz használatával. Ilyen például a SQL Server Management Studio, az Azure Data Studio és a Visual Studio Code SQL Server bővítménye.

  2. Létrehozás nevű táblát Books és name oszlopokatid.

    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. Szúrjon be négy könyvmintát a Books táblázatba.

    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. Tesztelje az adatokat egy egyszerű SELECT * lekérdezéssel.

    SELECT * FROM dbo.Books
    

Létrehozás alapkonfigurációs fájl

Létrehozás alapkonfigurációs fájlt a DAB CLI használatával.

  1. Létrehozás egy tipikus konfigurációs fájlt a használatávaldab init.

    dab init --database-type "mssql" --host-mode "Development"
    
  2. Adjon hozzá egy Book entitást a használatával dab add.

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. Figyelje meg az aktuális dab-config.json konfigurációs fájlt. A fájlnak tartalmaznia kell az API alapkonfigurációját egyetlen entitással, EGY REST API-végponttal és egy GraphQL-végponttal.

    {
      "$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": "*"
                }
              ]
            }
          ]
        }
      }
    }
    

környezeti változók fájl Létrehozás

Most adjon hozzá egy környezeti fájlt a DAB környezeti változóinak tárolásához.

  1. Létrehozás egy nevű .env fájlt ugyanabban a könyvtárban, mint a DAB CLI konfigurációs fájljai.

Megjegyzés

A .env fájlnév (például .gitignore és .editorconfig fájl) nem rendelkezik fájlnévvel, csak fájlkiterjesztéssel. A név nem különbözteti meg a kis- és nagybetűket, de a konvenció kisbetűs.

  1. Adjon hozzá egy DAB_ENVIRONMENT környezeti változót a értékével Development. Emellett adjon hozzá egy környezeti változót SQL_DOCKER_CONNECTION_STRING az adatbázis-kapcsolati karakterlánc.

    SQL_DOCKER_CONNECTION_STRING=<connection-string>
    DAB_ENVIRONMENT=Development
    

Létrehozás környezeti konfigurációs fájl

Végül adjon hozzá egy fejlesztési konfigurációs fájlt az aktuális konfiguráció és a kívánt környezeti konfiguráció közötti eltéréssel.

  1. Hozzon létre egy dab-config.Development.json fájlt. Adja hozzá a következő tartalmat, hogy a @env() függvény használatával állítsa be az connection-string értékét a fejlesztési környezetben.

    {
      "$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. Mentse a módosításokat az .env, a dab-config.json és a dab-config fájlba. Development.json fájlokat.

Beállítás tesztelése

  1. Az dab start eszközzel ellenőrizze, hogy az eszköz a várt módon indul-e el.

    dab start
    
  2. Az eszköz kimenetének tartalmaznia kell a futó API-hoz való navigáláshoz használandó címet.

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

    Tipp

    Ebben a példában az alkalmazás az 5000-s porton localhost fut. Előfordulhat, hogy a futó alkalmazás címe és portja eltérő.

  3. Először próbálja ki manuálisan az API-t egy GET-kérés kiadásával a következőnek /api/Book: .

    Tipp

    Ebben a példában az URL-cím a következő: https://localhost:5000/api/Book. Ehhez az URL-címhez a webböngészőben navigálhat.

  4. Ezután lépjen a Swagger dokumentációs oldalára a címen /swagger.

    Tipp

    Ebben a példában az URL-cím a következő: <https://localhost:5000/swagger. Ehhez az URL-címhez a webböngészővel is navigálhat.

  5. Végül próbálja ki a GraphQL-végpontot a /graphql művelet eléréséhez és futtatásához.

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

    Tipp

    Ebben a példában az URL-cím a következő: https://localhost:5000/graphql. Ehhez az URL-címhez a webböngészővel is navigálhat.