Bagikan melalui


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
<entity-name> Argumen posisi yang diperlukan. Nama entitas logis.
-c, --config Jalur file konfigurasi. Bawaan dab-config.json.
--cache.enabled Aktifkan/nonaktifkan penembolokan untuk entitas.
--cache.ttl Cache time-to-live dalam hitungan detik.
--description Deskripsi bentuk bebas untuk entitas.
--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).
--graphql Paparan GraphQL: false, true, singular, atau singular:plural.
--graphql.operation Prosedur tersimpan saja. Query atau Mutation (mutasi default).
--permissions Dibutuhkan. role:actions untuk satu peran.
--policy-database Filter gaya OData diterapkan dalam kueri DB.
--policy-request Kebijakan permintaan dievaluasi sebelum panggilan DB.
--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.
--rest Paparan REST: false, true, atau rute kustom.
--rest.methods Prosedur tersimpan saja. Kata kerja yang diizinkan: GET, , POSTPUT, PATCH, DELETE. POST default.
-s, --source Dibutuhkan. Nama objek database (tabel, tampilan, atau prosedur tersimpan).
--source.key-fields Bidang yang akan digunakan sebagai kunci primer.
--source.params Prosedur tersimpan saja. Nilai parameter default.
--source.type Jenis sumber: table, view, stored-procedure (tabel default).
--help Tampilkan layar bantuan ini.
--version Tampilkan informasi versi.

<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 \
  --source.params "year:2024,active: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"

--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": {
        "enabled": true
      }
    }
  }
}

--cache.ttl

Cache time-to-live dalam hitungan detik.

Example

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

Konfigurasi yang dihasilkan

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

--description

Deskripsi teks bebas entitas.

Nota

Opsi ini hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal 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"
    }
  }
}

--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": {
                "include": [ "id", "title", "price" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--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"
      }
    }
  }
}

--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 peran tambahan.

Example

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

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

--parameters.name

Prosedur tersimpan saja. Daftar nama parameter yang dipisahkan koma.

Nota

Opsi ini hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal 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,
            "description": "Beginning of date range (inclusive)"
          },
          {
            "name": "EndDate",
            "required": true,
            "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 hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal 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 hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal 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 hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal 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.name

Nama kolom database yang akan dijelaskan.

Nota

Opsi ini hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal 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

{
  "entities": {
    "Products": {
      "source": { "type": "table", "object": "dbo.Products" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "*" } ] }
      ],
      "fields": [
        {
          "name": "ProductID",
          "alias": "product_id",
          "description": "Unique identifier for each product",
          "primary-key": true
        },
        {
          "name": "ProductName",
          "alias": "product_name",
          "description": "Display name of the product",
          "primary-key": false
        }
      ]
    }
  }
}

--fields.alias

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

Nota

Opsi ini hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal 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 hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal 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 hanya tersedia di CLI prarilis v1.7 (saat ini RC). Instal dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Konfigurasi yang dihasilkan

{
  "entities": {
    "Products": {
      "source": { "type": "table", "object": "dbo.Products" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "*" } ] }
      ],
      "fields": [
        {
          "name": "ProductID",
          "primary-key": true
        }
      ]
    }
  }
}

--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'"
              }
            }
          ]
        }
      ]
    }
  }
}

--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" ]
      }
    }
  }
}

-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.key-fields

Bidang yang akan digunakan sebagai kunci primer. Diperlukan untuk tampilan saat dihasilkan melalui CLI.

Example

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

Konfigurasi yang dihasilkan

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

--source.params

Prosedur tersimpan saja. Pasangan yang dipisahkan name:value koma. Tidak diperbolehkan untuk tabel atau tampilan.

Nota

Dalam CLI prarilis v1.7 (saat ini RC), --source.params tidak digunakan lagi. Gunakan --parameters.name, --parameters.default, dan opsi terkait --parameters.* sebagai gantinya.

Example

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

Konfigurasi yang dihasilkan

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

--help

Tampilkan layar bantuan ini.

Example

dab add \
  --help

--version

Tampilkan informasi versi.

Example

dab add \
  --version

--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" } ] }
      ]
    }
  }
}