add perintah

Tambahkan definisi entitas baru ke file konfigurasi penyusun API Data yang ada. Anda harus sudah memiliki konfigurasi yang dibuat dengan dab init. Gunakan dab update untuk memodifikasi entitas setelah pembuatan.

Petunjuk / Saran

Gunakan dab add untuk membuat entitas baru, dan dab update untuk mengembangkannya.

Syntax

dab add <entity-name> [options]

Sekilas

Option Ringkasan
-c, --config Jalur file konfigurasi. Bawaan dab-config.json.

Bagian kepala

Option Ringkasan
<entity-name> Argumen posisi yang diperlukan. Nama entitas logis.
-s, --source Dibutuhkan. Nama objek database (tabel, tampilan, atau prosedur tersimpan).
--source.type Jenis sumber: table, view, stored-procedure (tabel default).
--source.key-fields Bidang kunci primer untuk tampilan (dipisahkan koma).
--source.params Prosedur tersimpan saja. Nilai parameter default sebagai param1:val1,param2:val2.

Bagian cache

Option Ringkasan
--cache.enabled Aktifkan/nonaktifkan penembolokan untuk entitas.
--cache.ttl-seconds Cache time-to-live dalam hitungan detik.
--cache.level Tingkat cache: L1 atau L1L2. Standar: L1L2.
--health.enabled Aktifkan pemeriksaan kesehatan untuk entitas ini. Standar: true.
--description Deskripsi bentuk bebas untuk entitas.

Bagian parameter

Option Ringkasan
--parameters.name Prosedur tersimpan saja. Nama parameter (dipisahkan koma).
--parameters.description Prosedur tersimpan saja. Deskripsi parameter.
--parameters.required Prosedur tersimpan saja. Parameter memerlukan bendera.
--parameters.default Prosedur tersimpan saja. Nilai default parameter.

Bagian bidang

Option Ringkasan
--fields.exclude Bidang yang dikecualikan yang dipisahkan koma.
--fields.include Bidang yang diizinkan dipisahkan koma (* = semua).
--fields.name Nama bidang untuk dijelaskan (dapat diulang atau dipisahkan koma).
--fields.alias Alias bidang (dipisahkan koma, diratakan ke --fields.name).
--fields.description Deskripsi bidang (dipisahkan koma, diratakan ke --fields.name).
--fields.primary-key Bendera kunci primer (dipisahkan koma, diratakan ke --fields.name).

Bagian API

Option Ringkasan
--graphql Paparan GraphQL: false, true, singular, atau singular:plural.
--graphql.operation Prosedur tersimpan saja. Query atau Mutation (mutasi default).
--rest Paparan REST: false, true, atau rute kustom.
--rest.methods Prosedur tersimpan saja. Kata kerja yang diizinkan: GET, , POSTPUT, PATCH, DELETE. POST default.
--mcp.dml-tools Aktifkan/nonaktifkan alat bahasa manipulasi data (DML) untuk entitas dalam Protokol Konteks Model (MCP). Bawaan true.
--mcp.custom-tool Prosedur tersimpan saja. Daftar sebagai alat MCP bernama.

Bagian izin

Option Ringkasan
--permissions Dibutuhkan. role:actions untuk satu peran.
--policy-database Filter gaya OData diterapkan dalam kueri database.
--policy-request Kebijakan permintaan dievaluasi sebelum panggilan database.

<entity-name>

Nama logis entitas dalam konfigurasi. Peka huruf besar/kecil.

Contoh cepat untuk tabel, tampilan, dan prosedur tersimpan

Menambahkan tabel

dab add Book \
  --source dbo.Books \
  --source.type table \
  --permissions "anonymous:read" \
  --description "Example for managing book inventory"

Tambah tampilan

dab add BookView \
  --source dbo.MyView \
  --source.type view \
  --source.key-fields "id,region" \
  --permissions "anonymous:read" \
  --description "Example for managing book inventory from view"

Menambahkan prosedur tersimpan

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --parameters.name "year,active" \
  --parameters.required "false,false" \
  --parameters.default "2024,true" \
  --permissions "anonymous:execute" \
  --graphql.operation query \
  --description "Example for executing a stored procedure"

-c, --config

Jalur file konfigurasi. Defaultnya adalah dab-config.json.

Example

dab add Book \
  --config ./dab-config.mssql.json \
  --source dbo.Books \
  --permissions "anonymous:read"

-s, --source

Dibutuhkan. Nama objek database: tabel, tampilan, kontainer, atau prosedur tersimpan.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read"

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

--source.type

Jenis objek database. Standar: table.

Example

dab add Book \
  --source dbo.Books \
  --source.type table \
  --permissions "anonymous:read"

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

--source.key-fields

Satu atau beberapa bidang untuk digunakan sebagai kunci primer. Tampilan tidak memiliki kunci primer intrinsik, jadi Anda harus menentukan bidang kunci secara eksplisit.

Example

dab add BookView \
  --source dbo.MyView \
  --source.type view \
  --source.key-fields "id,region" \
  --permissions "anonymous:read"

Konfigurasi yang dihasilkan

{
  "entities": {
    "BookView": {
      "source": {
        "object": "dbo.MyView",
        "type": "view",
        "key-fields": [ "id", "region" ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

--source.params

Kamus parameter dan nilai defaultnya untuk prosedur tersimpan. Gunakan format param1:val1,param2:val2.

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --source.params "year:2024,active:true" \
  --permissions "anonymous:execute"

Konfigurasi yang dihasilkan

{
  "entities": {
    "BookProc": {
      "source": {
        "object": "dbo.MyProc",
        "type": "stored-procedure",
        "parameters": [
          { "name": "year", "required": false, "default": "2024" },
          { "name": "active", "required": false, "default": "True" }
        ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "execute" } ] }
      ]
    }
  }
}

--cache.enabled

Mengaktifkan atau menonaktifkan penembolokan.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --cache.enabled true

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "cache": {}
    }
  }
}

--cache.ttl-seconds

Cache time-to-live dalam hitungan detik.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --cache.ttl-seconds 300

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "cache": {
        "ttl-seconds": 300
      }
    }
  }
}

--cache.level

Tingkat cache untuk entitas ini. Nilai yang berlaku adalah L1 atau L1L2. Defaultnya adalah L1L2.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --cache.level L1

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "cache": {
        "level": "L1"
      }
    }
  }
}

--health.enabled

Aktifkan atau nonaktifkan pemeriksaan kesehatan untuk entitas ini. Defaultnya adalah true.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --health.enabled false

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "health": {
        "enabled": false
      }
    }
  }
}

--description

Deskripsi teks bebas entitas.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --description "Entity for managing book inventory"

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "description": "Entity for managing book inventory"
    }
  }
}

--parameters.name

Prosedur tersimpan saja. Daftar nama parameter yang dipisahkan koma.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --description "Retrieves all orders placed within a specified date range" \
  --parameters.name "StartDate,EndDate,CustomerID" \
  --parameters.description "Beginning of date range (inclusive),End of date range (inclusive),Optional customer ID filter" \
  --parameters.required "true,true,false" \
  --parameters.default ",,null"

Konfigurasi yang dihasilkan

{
  "entities": {
    "GetOrdersByDateRange": {
      "description": "Retrieves all orders placed within a specified date range",
      "source": {
        "object": "dbo.usp_GetOrdersByDateRange",
        "type": "stored-procedure",
        "parameters": [
          {
            "name": "StartDate",
            "required": true,
            "default": "",
            "description": "Beginning of date range (inclusive)"
          },
          {
            "name": "EndDate",
            "required": true,
            "default": "",
            "description": "End of date range (inclusive)"
          },
          {
            "name": "CustomerID",
            "required": false,
            "default": "null",
            "description": "Optional customer ID filter"
          }
        ]
      },
      "permissions": [
        {
          "role": "authenticated",
          "actions": [
            {
              "action": "execute"
            }
          ]
        }
      ]
    }
  }
}

--parameters.description

Prosedur tersimpan saja. Daftar deskripsi parameter yang dipisahkan koma yang selaras dengan --parameters.name.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --parameters.name "StartDate,EndDate" \
  --parameters.description "Beginning of date range (inclusive),End of date range (inclusive)"

--parameters.required

Prosedur tersimpan saja. Daftar nilai yang true/false dipisahkan koma yang diratakan ke .--parameters.name

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --parameters.name "StartDate,EndDate" \
  --parameters.required "true,true"

--parameters.default

Prosedur tersimpan saja. Daftar nilai default yang dipisahkan koma yang diratakan ke --parameters.name.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --parameters.name "CustomerID" \
  --parameters.default "null"

--fields.exclude

Daftar bidang yang dipisahkan koma untuk dikecualikan.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --fields.exclude "internal_flag,secret_note"

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [ "internal_flag", "secret_note" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--fields.include

Daftar bidang yang dipisahkan koma untuk diekspos.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --fields.include "id,title,price"

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [],
                "include": [ "id", "title", "price" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--fields.name

Nama kolom database yang akan dijelaskan.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID,ProductName" \
  --fields.alias "product_id,product_name" \
  --fields.description "Unique identifier for each product,Display name of the product" \
  --fields.primary-key "true,false"

Konfigurasi yang dihasilkan

Nota

Dalam CLI pratinjau Azure Data API builder 2.0 saat ini, CLI menerima --fields.name, , --fields.alias--fields.description, dan --fields.primary-key tetapi belum mempertahankan metadata bidang tingkat entitas ke file konfigurasi. Tim mengharapkan untuk menyelesaikan perilaku ini sebelum GA.

--fields.alias

Alias untuk bidang . Gunakan daftar yang dipisahkan koma yang diratakan ke --fields.name.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.alias "product_id"

--fields.description

Deskripsi untuk bidang . Gunakan daftar yang dipisahkan koma yang diratakan ke --fields.name.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.description "Unique identifier"

--fields.primary-key

Bendera kunci utama untuk bidang . Gunakan daftar true/false nilai yang dipisahkan koma yang diratakan ke .--fields.name

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.primary-key "true"

Nota

Dalam CLI pratinjau Azure Data API builder 2.0 saat ini, CLI menerima --fields.primary-key tetapi belum mempertahankan metadata bidang tingkat entitas ke file konfigurasi. Untuk menentukan bidang kunci utama untuk tampilan, gunakan --source.key-fields sebagai gantinya.

--graphql

Mengontrol paparan GraphQL.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --graphql book:books

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "graphql": {
        "enabled": true,
        "type": {
          "singular": "book",
          "plural": "books"
        }
      }
    }
  }
}

--graphql.operation

Prosedur tersimpan saja. Jenis operasi GraphQL. Defaultnya adalah mutation.

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --permissions "admin:execute" \
  --graphql.operation Query

Konfigurasi yang dihasilkan

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ],
      "graphql": {
        "enabled": true,
        "operation": "query",
        "type": {
          "singular": "BookProc",
          "plural": "BookProcs"
        }
      }
    }
  }
}

--rest

Mengontrol paparan REST.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --rest BooksApi

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "rest": {
        "enabled": true,
        "path": "/BooksApi"
      }
    }
  }
}

--rest.methods

Prosedur tersimpan saja. Kata kerja HTTP diizinkan untuk eksekusi: GET, , POST, PUTPATCH, DELETE. Default ke POST. Diabaikan untuk tabel/tampilan.

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --permissions "admin:execute" \
  --rest true \
  --rest.methods GET,POST

Konfigurasi yang dihasilkan

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ],
      "rest": {
        "enabled": true,
        "methods": [ "get", "post" ]
      }
    }
  }
}

--mcp.dml-tools

Aktifkan atau nonaktifkan alat DML untuk entitas ini di MCP. Standar: true. Ketika diatur ke false, entitas dikecualikan dari permukaan alat MCP DML. Ketika mcp dihilangkan sepenuhnya, alat DML diaktifkan secara default.

Nota

Fungsionalitas Pembuat API Data 2.0 yang dijelaskan di bagian ini saat ini dalam pratinjau dan mungkin berubah sebelum ketersediaan umum. Untuk informasi selengkapnya, lihat Apa yang baru dalam versi 2.0.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --mcp.dml-tools true

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "mcp": {
        "dml-tools": true
      }
    }
  }
}

--mcp.custom-tool

Daftarkan entitas prosedur tersimpan sebagai alat MCP bernama. Hanya valid ketika --source.type adalah stored-procedure. Ketika true, DAB secara dinamis mendaftarkan prosedur dalam respons MCP tools/list dan agen dapat memanggilnya melalui tools/call.

Example

dab add GetBookById \
  --source dbo.get_book_by_id \
  --source.type stored-procedure \
  --permissions "anonymous:execute" \
  --mcp.custom-tool true

Konfigurasi yang dihasilkan

{
  "entities": {
    "GetBookById": {
      "source": {
        "type": "stored-procedure",
        "object": "dbo.get_book_by_id"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "execute" } ] }
      ],
      "mcp": {
        "custom-tool": true
      }
    }
  }
}

Penting

--mcp.custom-tool hanya berlaku untuk entitas prosedur tersimpan. Menggunakannya dengan entitas tabel atau tampilan menyebabkan kesalahan validasi.

--permissions

Mendefinisikan pasangan peran→actions.

--permissions tidak dapat diulang. Untuk menambahkan lebih banyak peran, jalankan dab add dengan satu peran lalu jalankan dab update untuk lebih banyak peran.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read"

dab update Book \
  --permissions "authenticated:create,read,update,delete"

--policy-database

Kebijakan tingkat database.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --policy-database "region eq 'US'"

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "database": "region eq 'US'"
              }
            }
          ]
        }
      ]
    }
  }
}

--policy-request

Kebijakan tingkat permintaan.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --policy-request "@claims.role == 'admin'"

Konfigurasi yang dihasilkan

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "request": "@claims.role == 'admin'"
              }
            }
          ]
        }
      ]
    }
  }
}

--help

Tampilkan layar bantuan ini.

Example

dab add \
  --help

--version

Tampilkan informasi versi.

Example

dab add \
  --version