Freigeben über


add-Befehl

Fügen Sie einer vorhandenen Konfigurationsdatei des Daten-API-Generators eine neue Entitätsdefinition hinzu. Sie müssen bereits über eine Konfiguration verfügen, die mit dab init. Dient dab update zum Ändern von Entitäten nach der Erstellung.

Tipp

Wird dab add verwendet, um neue Entitäten zu erstellen und dab update zu entwickeln.

Syntax

dab add <entity-name> [options]

Schnellblick

Option Zusammenfassung
<entity-name> Erforderliches Positionsargument. Logischer Entitätsname.
-c, --config Konfigurationsdateipfad. Standard-dab-config.json.
--cache.enabled Aktivieren/Deaktivieren der Zwischenspeicherung für entität.
--cache.ttl Zwischenspeichern von Zeit-zu-Live-Zeit in Sekunden.
--description Beschreibung der Freiform für die Entität.
--fields.exclude Durch Trennzeichen getrennte ausgeschlossene Felder.
--fields.include Durch Trennzeichen getrennte zulässige Felder (* = alle).
--fields.name Zu beschreibende Feldnamen (wiederholbar oder kommagetrennt).
--fields.alias Feldaliasen (durch Trennzeichen getrennt, ausgerichtet an --fields.name).
--fields.description Feldbeschreibungen (durch Trennzeichen getrennt, ausgerichtet an --fields.name).
--fields.primary-key Primärschlüsselkennzeichnungen (durch Trennzeichen getrennt, ausgerichtet an --fields.name).
--graphql GraphQL-Belichtung: false, , true, singularoder singular:plural.
--graphql.operation Nur gespeicherte Prozeduren. Query oder Mutation (Standardmutation).
--permissions Erforderlich. role:actions für eine einzelne Rolle.
--policy-database OData-Formatfilter, der in der DB-Abfrage angewendet wird.
--policy-request Die Anforderungsrichtlinie wurde vor dem DB-Aufruf ausgewertet.
--parameters.name Nur gespeicherte Prozeduren. Parameternamen (durch Trennzeichen getrennt).
--parameters.description Nur gespeicherte Prozeduren. Parameterbeschreibungen.
--parameters.required Nur gespeicherte Prozeduren. Parameter erforderliche Flags.
--parameters.default Nur gespeicherte Prozeduren. Parameterstandardwerte.
--rest REST-Belichtung: false, trueoder benutzerdefinierte Route.
--rest.methods Nur gespeicherte Prozeduren. Zulässige Verben: GET, POST, PUT, PATCH, . DELETE Standard-POST.
-s, --source Erforderlich. Name des Datenbankobjekts (Tabelle, Ansicht oder gespeicherte Prozedur).
--source.key-fields Die Felder, die als Primärschlüssel verwendet werden sollen.
--source.params Nur gespeicherte Prozeduren. Standardwerte.
--source.type Quelltyp: table, , viewstored-procedure(Standardtabelle).
--help Zeigen Sie diesen Hilfebildschirm an.
--version Versionsinformationen anzeigen.

<entity-name>

Logischer Name der Entität in der Konfiguration. Groß-/Kleinschreibung wird beachtet.

Schnelle Beispiele für Tabellen, Ansichten und gespeicherte Prozeduren

Hinzufügen einer Tabelle

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

Hinzufügen einer Ansicht

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"

Hinzufügen einer gespeicherten Prozedur

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

Konfigurationsdateipfad. Der Standardwert ist dab-config.json.

Example

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

--cache.enabled

Aktivieren oder Deaktivieren der Zwischenspeicherung.

Example

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

Resultierende Konfiguration

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

--cache.ttl

Zwischenspeichern von Zeit-zu-Live-Zeit in Sekunden.

Example

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

Resultierende Konfiguration

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

--description

Freitextbeschreibung der Entität.

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Resultierende Konfiguration

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

--fields.exclude

Durch Trennzeichen getrennte Liste der auszuschließenden Felder.

Example

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

Resultierende Konfiguration

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

--fields.include

Durch Trennzeichen getrennte Liste von Feldern, die verfügbar gemacht werden sollen.

Example

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

Resultierende Konfiguration

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

--graphql

Steuern der GraphQL-Belichtung.

Example

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

Resultierende Konfiguration

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

--graphql.operation

Nur gespeicherte Prozeduren. GraphQL-Vorgangstyp. Der Standardwert ist mutation.

Example

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

Resultierende Konfiguration

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

--permissions

Definiert Rollenpaare→aktionen.

--permissions ist nicht wiederholbar. Um weitere Rollen hinzuzufügen, führen Sie dab add eine Rolle aus, und führen Sie dann für zusätzliche Rollen aus dab update .

Example

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

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

--parameters.name

Nur gespeicherte Prozeduren. Durch Trennzeichen getrennte Liste von Parameternamen.

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit 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"

Resultierende Konfiguration

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

Nur gespeicherte Prozeduren. Durch Trennzeichen getrennte Liste der Parameterbeschreibungen, die --parameters.nameausgerichtet sind.

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit 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

Nur gespeicherte Prozeduren. Durch Trennzeichen getrennte Liste von true/false Werten, die --parameters.namean .

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit 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

Nur gespeicherte Prozeduren. Durch Trennzeichen getrennte Liste der Standardwerte, die --parameters.nameausgerichtet sind.

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit 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

Name der zu beschreibenden Datenbankspalte.

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit 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"

Resultierende Konfiguration

{
  "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 für das Feld. Verwenden Sie eine durch Trennzeichen getrennte Liste, die --fields.nameausgerichtet ist.

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--fields.description

Beschreibung für das Feld. Verwenden Sie eine durch Trennzeichen getrennte Liste, die --fields.nameausgerichtet ist.

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit 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

Primärschlüsselkennzeichnung für das Feld. Verwenden Sie eine durch Trennzeichen getrennte Liste von true/false Werten, die --fields.namean .

Hinweis

Diese Option ist nur in der v1.7 Prerelease CLI (derzeit RC) verfügbar. Installieren mit dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Resultierende Konfiguration

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

--policy-database

Richtlinie auf Datenbankebene.

Example

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

Resultierende Konfiguration

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

--policy-request

Richtlinie auf Anforderungsebene.

Example

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

Resultierende Konfiguration

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

--rest

Steuern der REST-Belichtung.

Example

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

Resultierende Konfiguration

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

--rest.methods

Nur gespeicherte Prozeduren. HTTP-Verben, die für die Ausführung zulässig sind: GET, POST, PUT, PATCH, . DELETE Standardmäßig wird POST verwendet. Wird für Tabellen/Ansichten ignoriert.

Example

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

Resultierende Konfiguration

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

-s, --source

Erforderlich. Name des Datenbankobjekts: Tabelle, Ansicht, Container oder gespeicherte Prozedur.

Example

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

Resultierende Konfiguration

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

--source.key-fields

Die Felder, die als Primärschlüssel verwendet werden sollen. Erforderlich für Ansichten, wenn sie über die CLI generiert werden.

Example

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

Resultierende Konfiguration

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

--source.params

Nur gespeicherte Prozeduren. Durch Trennzeichen getrennte name:value Paare. Für Tabellen oder Ansichten nicht zulässig.

Hinweis

In der v1.7 prerelease CLI (derzeit RC) --source.params ist veraltet. Verwenden Sie --parameters.namestattdessen Optionen --parameters.default, und verwandte --parameters.* Optionen.

Example

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

Resultierende Konfiguration

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

Zeigen Sie diesen Hilfebildschirm an.

Example

dab add \
  --help

--version

Versionsinformationen anzeigen.

Example

dab add \
  --version

--source.type

Typ des Datenbankobjekts. Standardwert: table.

Example

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

Resultierende Konfiguration

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