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
-c, --config Konfigurationsdateipfad. Standard-dab-config.json.

Kopfabschnitt

Option Zusammenfassung
<entity-name> Erforderliches Positionsargument. Logischer Entitätsname.
-s, --source Erforderlich. Name des Datenbankobjekts (Tabelle, Ansicht oder gespeicherte Prozedur).
--source.type Quelltyp: table, , viewstored-procedure(Standardtabelle).
--source.key-fields Primärschlüsselfelder für Ansichten (durch Trennzeichen getrennt).
--source.params Nur gespeicherte Prozeduren. Standardwerte für Parameter als param1:val1,param2:val2.

Cacheabschnitt

Option Zusammenfassung
--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.

Parameterabschnitt

Option Zusammenfassung
--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.

Feldabschnitt

Option Zusammenfassung
--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).

API-Abschnitt

Option Zusammenfassung
--graphql GraphQL-Belichtung: false, , true, singularoder singular:plural.
--graphql.operation Nur gespeicherte Prozeduren. Query oder Mutation (Standardmutation).
--rest REST-Belichtung: false, trueoder benutzerdefinierte Route.
--rest.methods Nur gespeicherte Prozeduren. Zulässige Verben: GET, POST, PUT, PATCH, . DELETE Standard-POST.
--mcp.dml-tools Aktivieren/Deaktivieren von DML-Tools (Data Manipulation Language) für die Entität im Model Context Protocol (MCP). Standard-true.
--mcp.custom-tool Nur gespeicherte Prozeduren. Registrieren Sie sich als benanntes MCP-Tool.

Abschnitt "Berechtigungen"

Option Zusammenfassung
--permissions Erforderlich. role:actions für eine einzelne Rolle.
--policy-database OData-Filter, der in datenbankabfrage angewendet wird.
--policy-request Anforderungsrichtlinie wird vor dem Datenbankaufruf ausgewertet.

<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 \
  --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

Konfigurationsdateipfad. Der Standardwert ist dab-config.json.

Example

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

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

--source.key-fields

Mindestens ein Feld, das als Primärschlüssel verwendet werden soll. Ansichten fehlen systeminterne Primärschlüssel, daher müssen Sie Schlüsselfelder explizit angeben.

Example

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

Resultierende Konfiguration

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

--source.params

Wörterbuch der Parameter und deren Standardwerte für gespeicherte Prozeduren. Verwenden Sie das 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"

Resultierende Konfiguration

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

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

--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": {
        "ttl-seconds": 300
      }
    }
  }
}

--description

Freitextbeschreibung der Entität.

Hinweis

Diese Option ist in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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"
    }
  }
}

--parameters.name

Nur gespeicherte Prozeduren. Durch Trennzeichen getrennte Liste von Parameternamen.

Hinweis

Diese Option ist in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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,
            "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

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

Hinweis

Diese Option ist in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

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

--fields.name

Name der zu beschreibenden Datenbankspalte.

Hinweis

Diese Option ist in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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

Hinweis

In der aktuellen Version 2.0.0-rc akzeptiert --fields.namedie CLI , --fields.alias, --fields.description, und --fields.primary-key speichert die Metadaten auf Entitätsebene noch nicht in der Konfigurationsdatei. Das Team erwartet, dass dieses Verhalten vor ga behoben wird.

--fields.alias

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

Hinweis

Diese Option ist in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 in der 2.0.0-rc CLI verfügbar. Der Daten-API-Generator 2.0 befindet sich derzeit in der Vorschau. Installieren mit dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

Hinweis

In der aktuellen Version 2.0.0-rc akzeptiert --fields.primary-key die CLI Feldmetadaten auf Entitätsebene jedoch noch nicht in der Konfigurationsdatei. Verwenden Sie stattdessen die Verwendung --source.key-fields , um Primärschlüsselfelder für Ansichten anzugeben.

--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",
        "type": {
          "singular": "BookProc",
          "plural": "BookProcs"
        }
      }
    }
  }
}

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

--mcp.dml-tools

Aktivieren oder deaktivieren Sie DML-Tools für diese Entität in MCP. Standardwert: true. Bei Festlegung auf falsewird die Entität von der MCP-DML-Tooloberfläche ausgeschlossen. Wenn mcp sie vollständig weggelassen wird, sind DML-Tools standardmäßig aktiviert.

Hinweis

Die in diesem Abschnitt beschriebene Funktionalität des Daten-API-Generators 2.0 befindet sich derzeit in der Vorschau und kann sich vor der allgemeinen Verfügbarkeit ändern. Weitere Informationen finden Sie unter Neuigkeiten in Version 2.0.

Example

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

Resultierende Konfiguration

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

--mcp.custom-tool

Registrieren Sie eine Gespeicherte Prozedurentität als benanntes MCP-Tool. Nur gültig, wenn --source.type es sich um stored-procedure. Wenn true, registriert DAB die Prozedur dynamisch in der MCP-Antwort tools/list und Agents kann es aufrufen tools/call.

Example

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

Resultierende Konfiguration

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

Von Bedeutung

--mcp.custom-tool ist nur für Entitäten gespeicherter Prozeduren gültig. Die Verwendung mit Tabellen- oder Ansichtsentitäten führt zu einem Überprüfungsfehler.

--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 weitere Rollen aus dab update .

Example

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

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

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

--help

Zeigen Sie diesen Hilfebildschirm an.

Example

dab add \
  --help

--version

Versionsinformationen anzeigen.

Example

dab add \
  --version