İngilizce dilinde oku

Aracılığıyla paylaş


Veri API'si oluşturucusu ile yapılandırma dosyası ortamlarını kullanma

Bu kılavuz, yapılandırma dosyası kullanarak geliştirme ortamını hedefleme adımlarını gösterir. Sonuç yapılandırma dosyaları, gelecekte çok az değişiklikle üretim veritabanı yapılandırması eklenebilecek kadar esnek olmalıdır.

Önkoşullar

SQL tablosunu ve verilerini İçerik Oluşturucu

Bu örnek senaryoda kullanmak üzere kurgusal verilerle bir tablo İçerik Oluşturucu.

  1. Tercih ettiğiniz istemciyi veya aracı kullanarak SQL sunucusuna ve veritabanına bağlanın. Örnekler şunlardır ancak bunlarla sınırlı değildir: SQL Server Management Studio, Azure Data Studio ve Visual Studio Code için SQL Server uzantısı.

  2. ve name sütunlarıyla id adlı Books bir tablo İçerik Oluşturucu.

    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. Tabloya Books dört örnek kitap satırı ekleyin.

    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. Basit SELECT * bir sorguyla verilerinizi test edin.

    SELECT * FROM dbo.Books
    

İçerik Oluşturucu temel yapılandırma dosyası

DAB CLI kullanarak bir temel yapılandırma dosyası İçerik Oluşturucu.

  1. kullanarak dab inittipik bir yapılandırma dosyası İçerik Oluşturucu.

    dab init --database-type "mssql" --host-mode "Development"
    
  2. kullanarak dab addbir Kitap varlığı ekleyin.

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. Geçerli dab-config.json yapılandırma dosyanızı gözlemleyin. Dosya tek bir varlık, REST API uç noktası ve GraphQL uç noktası ile API'nizin temel uygulamasını içermelidir.

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

ortam değişkenleri dosyasını İçerik Oluşturucu

Şimdi DAB için ortam değişkenlerini depolamak için bir ortam dosyası ekleyin.

  1. DAB CLI yapılandırma dosyalarınız ile aynı dizinde adlı .env bir dosya İçerik Oluşturucu.

Not

.env gibi .gitignore dosya adı ve .editorconfig dosyalarının dosya adı yoktur, yalnızca bir dosya uzantısı vardır. Ad büyük/küçük harfe duyarlı değildir ancak kural küçük harftir.

  1. değerine Developmentsahip bir DAB_ENVIRONMENT ortam değişkeni ekleyin. Ayrıca veritabanı bağlantı dizesi bir ortam değişkeni ekleyinSQL_DOCKER_CONNECTION_STRING.

    SQL_DOCKER_CONNECTION_STRING=<connection-string>
    DAB_ENVIRONMENT=Development
    

ortam yapılandırma dosyasını İçerik Oluşturucu

Son olarak, geçerli yapılandırmanızla istenen ortam yapılandırması arasında delta ile bir geliştirme yapılandırma dosyası ekleyin.

  1. Bir dab-config.Development.json dosyası oluşturun. Geliştirme ortamında değerinizi connection-string ayarlamak için işlevini kullanmak @env() için aşağıdaki içeriği ekleyin.

    {
      "$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. .env, dab-config.json ve dab-config değişikliklerinizi kaydedin. dosyaları Development.json.

Test kurulumu

  1. Aracın beklendiği gibi başladığını doğrulamak için kullanın dab start .

    dab start
    
  2. Aracın çıktısı, çalışan API'ye gitmek için kullanılacak adresi içermelidir.

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

    İpucu

    Bu örnekte uygulama 5000 numaralı bağlantı noktasında çalıştırılırlocalhost. Çalışan uygulamanızın farklı bir adresi ve bağlantı noktası olabilir.

  3. İlk olarak, öğesine bir GET isteği vererek API'yi /api/Bookel ile deneyin.

    İpucu

    Bu örnekte URL olacaktır https://localhost:5000/api/Book. Web tarayıcınızı kullanarak bu URL'ye gidebilirsiniz.

  4. Ardından konumundaki Swagger belgeleri sayfasına /swaggergidin.

    İpucu

    Bu örnekte URL olacaktır <https://localhost:5000/swagger. Yine web tarayıcınızı kullanarak bu URL'ye gidebilirsiniz.

  5. Son olarak, bu işleme gidip /graphql çalıştırarak GraphQL uç noktasını deneyin.

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

    İpucu

    Bu örnekte URL olacaktır https://localhost:5000/graphql. Yine web tarayıcınızı kullanarak bu URL'ye gidebilirsiniz.