Bagikan melalui


Menggunakan lingkungan file konfigurasi dengan penyusun API Data

Panduan ini menjelaskan langkah-langkah untuk menargetkan lingkungan pengembangan menggunakan file konfigurasi. File konfigurasi hasil akhir harus cukup fleksibel sehingga konfigurasi database produksi dapat ditambahkan di masa depan dengan perubahan minimal.

Prasyarat

Create tabel dan data SQL

Create tabel dengan data fiktif untuk digunakan dalam skenario contoh ini.

  1. Sambungkan ke server dan database SQL menggunakan klien atau alat pilihan Anda. Contohnya termasuk, tetapi tidak terbatas pada: SQL Server Management Studio, Azure Data Studio, dan ekstensi SQL Server untuk Visual Studio Code.

  2. Create tabel bernama Books dengan id kolom dan 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. Sisipkan empat contoh baris buku ke Books dalam tabel.

    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. Uji data Anda dengan kueri sederhana SELECT * .

    SELECT * FROM dbo.Books
    

Create file konfigurasi dasar

Create file konfigurasi dasar menggunakan DAB CLI.

  1. Create file konfigurasi umum menggunakan dab init.

    dab init --database-type "mssql" --host-mode "Development"
    
  2. Tambahkan entitas Buku menggunakan dab add.

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. Amati file konfigurasi dab-config.json Anda saat ini. File harus menyertakan implementasi garis besar API Anda dengan satu entitas, titik akhir REST API, dan titik akhir 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 file variabel lingkungan

Sekarang, tambahkan file lingkungan untuk menyimpan variabel lingkungan untuk DAB.

  1. Create file bernama .env dalam direktori yang sama dengan file konfigurasi DAB CLI Anda.

Catatan

Nama .env file, seperti .gitignore dan .editorconfig file tidak memiliki nama file, hanya ekstensi file. Nama ini tidak peka huruf besar/kecil tetapi konvensinya adalah huruf kecil.

  1. DAB_ENVIRONMENT Tambahkan variabel lingkungan dengan nilai Development. Selain itu, tambahkan SQL_DOCKER_CONNECTION_STRING variabel lingkungan dengan string koneksi database Anda.

    SQL_DOCKER_CONNECTION_STRING=<connection-string>
    DAB_ENVIRONMENT=Development
    

Create file konfigurasi lingkungan

Terakhir, tambahkan file konfigurasi pengembangan dengan delta antara konfigurasi Anda saat ini dan konfigurasi lingkungan yang diinginkan.

  1. Buat file dab-config.Development.json. Tambahkan konten berikut untuk menggunakan @env() fungsi untuk mengatur nilai Anda connection-string di lingkungan pengembangan.

    {
      "$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. Simpan perubahan Anda ke .env, dab-config.json, dan dab-config. Development.json file.

Pengaturan pengujian

  1. Gunakan dab start untuk memvalidasi alat dimulai seperti yang diharapkan.

    dab start
    
  2. Output alat harus menyertakan alamat yang akan digunakan untuk menavigasi ke API yang sedang berjalan.

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

    Tip

    Dalam contoh ini, aplikasi berjalan di localhost port 5000. Aplikasi Anda yang sedang berjalan mungkin memiliki alamat dan port yang berbeda.

  3. Pertama, coba API secara manual dengan mengeluarkan permintaan GET ke /api/Book.

    Tip

    Dalam contoh ini, URL akan menjadi https://localhost:5000/api/Book. Anda dapat menavigasi ke URL ini menggunakan browser web Anda.

  4. Selanjutnya, navigasikan ke halaman dokumentasi Swagger di /swagger.

    Tip

    Dalam contoh ini, URL akan menjadi <https://localhost:5000/swagger. Sekali lagi, Anda dapat menavigasi ke URL ini menggunakan browser web Anda.

  5. Terakhir, coba titik akhir GraphQL dengan menavigasi ke /graphql dan menjalankan operasi ini.

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

    Tip

    Dalam contoh ini, URL akan menjadi https://localhost:5000/graphql. Sekali lagi, Anda dapat menavigasi ke URL ini menggunakan browser web Anda.