Dela via


Använda konfigurationsfilmiljöer med Data API Builder

Den här guiden beskriver steg för steg hur du riktar in dig på en utvecklingsmiljö med hjälp av en konfigurationsfil. Konfigurationsfilerna för slutresultatet bör vara tillräckligt flexibla för att en konfiguration av produktionsdatabasen ska kunna läggas till i framtiden med minimala ändringar.

Förutsättningar

  • Befintlig SQL-databas.
  • En datahanteringsklient
  • Cli för data-API-byggare. Installera CLI

Skapa SQL-tabell och -data

Skapa en tabell med fiktiva data som ska användas i det här exempelscenariot.

  1. Anslut till SQL-servern och databasen med den klient eller det verktyg du föredrar. Exempel är, men är inte begränsade till: SQL Server Management Studio, Azure Data Studio och SQL Server-tillägget för Visual Studio Code.

  2. Skapa en tabell med namnet Books med id kolumnerna och 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. Infoga fyra exempelboksrader i Books tabellen.

    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. Testa dina data med en enkel SELECT * fråga.

    SELECT * FROM dbo.Books
    

Skapa baskonfigurationsfil

Skapa en baslinjekonfigurationsfil med HJÄLP av DAB CLI.

  1. Skapa en typisk konfigurationsfil med .dab init

    dab init --database-type "mssql" --host-mode "Development"
    
  2. Lägg till en bokentitet med hjälp av dab add.

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. Observera din aktuella dab-config.json konfigurationsfil. Filen bör innehålla en baslinjeimplementering av ditt API med en enda entitet, en REST API-slutpunkt och en GraphQL-slutpunkt.

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

Skapa filen med miljövariabler

Lägg nu till en miljöfil för att lagra miljövariabler för DAB.

  1. Skapa en fil med namnet .env i samma katalog som dina DAB CLI-konfigurationsfiler.

Anteckning

Filnamnet .env , som .gitignore och .editorconfig -filerna har inget filnamn, bara ett filnamnstillägg. Namnet är skiftlägesokänsligt, men konventionen är gemen.

  1. Lägg till en DAB_ENVIRONMENT miljövariabel med värdet Development. Lägg också till en SQL_DOCKER_CONNECTION_STRING miljövariabel med din databas anslutningssträng.

    SQL_DOCKER_CONNECTION_STRING=<connection-string>
    DAB_ENVIRONMENT=Development
    

Skapa miljökonfigurationsfil

Slutligen lägger du till en utvecklingskonfigurationsfil med delta mellan den aktuella konfigurationen och önskad miljökonfiguration.

  1. Skapa en dab-config.Development.json-fil. Lägg till följande innehåll för att använda @env() funktionen för att ange ditt connection-string värde i utvecklingsmiljön.

    {
      "$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. Spara ändringarna i .env, dab-config.json och dab-config. Development.json filer.

Testkonfiguration

  1. Använd dab start för att verifiera att verktyget startar som förväntat.

    dab start
    
  2. Utdata från verktyget ska innehålla den adress som ska användas för att navigera till api:et som körs.

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

    Tips

    I det här exemplet körs programmet på localhost port 5000. Det program som körs kan ha en annan adress och port.

  3. Prova först API:et manuellt genom att utfärda en GET-begäran till /api/Book.

    Tips

    I det här exemplet är https://localhost:5000/api/BookURL:en . Du kan navigera till den här URL:en med hjälp av webbläsaren.

  4. Gå sedan till sidan för Swagger-dokumentation på /swagger.

    Tips

    I det här exemplet är <https://localhost:5000/swaggerURL:en . Återigen kan du navigera till den här URL:en med hjälp av webbläsaren.

  5. Prova slutligen GraphQL-slutpunkten genom att gå till /graphql och köra den här åtgärden.

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

    Tips

    I det här exemplet är https://localhost:5000/graphqlURL:en . Återigen kan du navigera till den här URL:en med hjälp av webbläsaren.