Delen via


Configuratiebestandsomgevingen gebruiken met Data API Builder

In deze handleiding worden de stappen beschreven voor het richten van een ontwikkelomgeving met behulp van een configuratiebestand. De configuratiebestanden van het eindresultaat moeten flexibel genoeg zijn om in de toekomst een productiedatabaseconfiguratie met minimale wijzigingen toe te voegen.

Vereisten

SQL-tabel en -gegevens Creatie

Creatie een tabel met fictieve gegevens voor gebruik in dit voorbeeldscenario.

  1. Maak verbinding met de SQL-server en -database met behulp van de client of het hulpprogramma van uw voorkeur. Voorbeelden zijn onder andere: SQL Server Management Studio, Azure Data Studio en de SQL Server-extensie voor Visual Studio Code.

  2. Creatie een tabel met de naam Books en idname kolommen.

    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. Voeg vier rijen met voorbeeldboeken in de Books tabel in.

    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. Test uw gegevens met een eenvoudige SELECT * query.

    SELECT * FROM dbo.Books
    

Creatie basisconfiguratiebestand

Creatie een basislijnconfiguratiebestand met behulp van de DAB CLI.

  1. Creatie een typisch configuratiebestand met behulp van dab init.

    dab init --database-type "mssql" --host-mode "Development"
    
  2. Voeg een Book-entiteit toe met behulp van dab add.

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. Bekijk het huidige dab-config.json configuratiebestand. Het bestand moet een basislijnimplementatie van uw API bevatten met één entiteit, een REST API-eindpunt en een GraphQL-eindpunt.

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

bestand met omgevingsvariabelen Creatie

Voeg nu een omgevingsbestand toe om omgevingsvariabelen voor DAB op te slaan.

  1. Creatie een bestand met de naam .env in dezelfde map als uw DAB CLI-configuratiebestanden.

Notitie

De .env bestandsnaam, zoals .gitignore en .editorconfig bestanden heeft geen bestandsnaam, alleen een bestandsextensie. De naam is niet hoofdlettergevoelig, maar de conventie is kleine letters.

  1. Voeg een omgevingsvariabele DAB_ENVIRONMENT toe met de waarde .Development Voeg ook een omgevingsvariabele SQL_DOCKER_CONNECTION_STRING toe met uw database verbindingsreeks.

    SQL_DOCKER_CONNECTION_STRING=<connection-string>
    DAB_ENVIRONMENT=Development
    

Creatie-omgevingsconfiguratiebestand

Voeg ten slotte een configuratiebestand voor ontwikkeling toe met de verschillen tussen uw huidige configuratie en de gewenste omgevingsconfiguratie.

  1. Maak een dab-config.Development.json-bestand. Voeg de volgende inhoud toe om de @env() functie te gebruiken om uw connection-string waarde in de ontwikkelomgeving in te stellen.

    {
      "$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. Sla uw wijzigingen op in de .env-, dab-config.json- en dab-config. Development.json bestanden.

Testinstallatie

  1. Gebruik dab start om te valideren dat het hulpprogramma wordt gestart zoals verwacht.

    dab start
    
  2. De uitvoer van het hulpprogramma moet het adres bevatten dat moet worden gebruikt om naar de actieve API te navigeren.

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

    Tip

    In dit voorbeeld wordt de toepassing uitgevoerd op localhost poort 5000. Uw actieve toepassing heeft mogelijk een ander adres en een andere poort.

  3. Probeer eerst de API handmatig uit door een GET-aanvraag te verzenden naar /api/Book.

    Tip

    In dit voorbeeld is https://localhost:5000/api/Bookde URL . U kunt naar deze URL navigeren met behulp van uw webbrowser.

  4. Navigeer vervolgens naar de Swagger-documentatiepagina op /swagger.

    Tip

    In dit voorbeeld is <https://localhost:5000/swaggerde URL . Nogmaals, u kunt naar deze URL navigeren met behulp van uw webbrowser.

  5. Probeer ten slotte het GraphQL-eindpunt door te navigeren naar /graphql en deze bewerking uit te voeren.

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

    Tip

    In dit voorbeeld is https://localhost:5000/graphqlde URL . Nogmaals, u kunt naar deze URL navigeren met behulp van uw webbrowser.