Referenz zur Befehlszeilenschnittstelle des Daten-API-Generators
Die Befehlszeilenschnittstelle (Cli) (dab CLI oder dab
) ist ein Befehlszeilentool, das die lokale Entwicklungsumgebung für Anwendungen mit dem Daten-API-Generator optimiert.
Trinkgeld
Die Cli des Daten-API-Generators verfügt über ein integriertes Hilfesystem. Um eine Liste der verfügbaren Befehle abzurufen, verwenden Sie die Option --help
für den Befehl dab
.
dab --help
Verwenden Sie die Option --help
, um Hilfe zu einem bestimmten Befehl zu erhalten. Um beispielsweise mehr über den Befehl init
zu erfahren:
dab init --help
Befehlszeilenverben und -optionen
init
Initialisiert die Laufzeitkonfiguration für das Laufzeitmodul des Daten-API-Generators. Es erstellt eine neue JSON-Datei mit den Eigenschaften, die als Optionen bereitgestellt werden.
Syntax
dab init [options]
Beispiele
dab init --config "dab-config.mssql.json" --database-type mssql --connection-string "@env('SQL_CONNECTION_STRING')"
dab init --database-type mysql --connection-string "@env('MYSQL_CONNECTION_STRING')" --graphql.multiple-create.enabled true
Optionen
Optionen | Option Erforderlich | Standardwert | Wert erforderlich | Werttyp | Beschreibung |
---|---|---|---|---|---|
--database-type | ✔️ Ja | ✔️ Ja | Schnur | Typ der Datenbank, die eine Verbindung herstellen soll. Unterstützte Werte: mssql , cosmosdb_nosql , cosmosdb_postgresql , mysql , postgresql . |
|
--connection-string- | ❌ Nein | "" |
✔️ Ja | Schnur | Verbindungsdetails zum Herstellen einer Verbindung mit der Datenbank. |
--cosmosdb_nosql-Datenbank- | ✔️ Ja ¹ | ✔️ Ja | Schnur | Datenbankname für Cosmos DB für NoSql. | |
--cosmosdb_nosql-container- | ❌ Nein | ✔️ Ja | Schnur | Containername für Cosmos DB für NoSql. | |
--graphql-schema | ✔️ Ja ¹ | ✔️ Ja | Schnur | GraphQL-Schemapfad | |
--set-session-context | ❌ Nein | false |
❌ Nein | Aktivieren Sie das Senden von Daten an MsSql mithilfe des Sitzungskontexts. | |
--hostmodus- | ❌ Nein | production |
✔️ Ja | Schnur | Angeben des Hostmodus – Entwicklung oder Produktion |
--cors-origin | ❌ Nein | "" |
✔️ Ja | Schnur | Geben Sie die Liste der zulässigen Ursprünge an. |
--auth.provider | ❌ Nein | StaticWebApps |
✔️ Ja | Schnur | Geben Sie den Identitätsanbieter an. |
--rest.path | ❌ Nein | /api |
✔️ Ja | Schnur | Geben Sie das Präfix des REST-Endpunkts an. |
--rest.enabled | ❌ Nein | true |
✔️ Ja | boolesch | Aktiviert den REST-Endpunkt für alle Entitäten. |
--rest.request-body-strict | ❌ Nein | true |
✔️ Ja | Lässt keine zusätzlichen Felder im Anforderungstext zu. | |
--graphql.path | ❌ Nein | /graphql |
✔️ Ja | Schnur | Geben Sie das Präfix des GraphQL-Endpunkts an. |
--graphql.enabled | ❌ Nein | true |
✔️ Ja | boolesch | Aktiviert den GraphQL-Endpunkt für alle Entitäten. |
--graphql.multiple-create.enabled | ❌ Nein | false |
✔️ Ja | Aktiviert mehrere Erstellungsfunktionen in GraphQL. | |
--auth.audience | ❌ Nein | ✔️ Ja | Schnur | Identifiziert die Empfänger, für die das JSON-Webtoken (JWT) vorgesehen ist. | |
--auth.issuer | ❌ Nein | ✔️ Ja | Schnur | Geben Sie die Partei an, die das JWT-Token ausgestellt hat. | |
-c,--config | ❌ Nein | dab-config.json |
✔️ Ja | Schnur | Pfad zur Konfigurationsdatei. |
¹ Diese Option ist nur erforderlich, wenn --database-type
auf cosmosdb_nosql
festgelegt ist.
add
Fügen Sie der Konfigurationsdatei eine neue Datenbankentität hinzu. Stellen Sie sicher, dass Sie bereits über eine Konfigurationsdatei verfügen, bevor Sie diesen Befehl ausführen, andernfalls wird ein Fehler zurückgegeben.
Syntax
dab add [entity-name] [options]
Beispiele
dab add Book -c "dab-config.MsSql.json" --source dbo.books --permissions "anonymous:*"
Optionen
Optionen | Option Erforderlich | Standardwert | Wert erforderlich | Werttyp | Beschreibung |
---|---|---|---|---|---|
-s,--quelle | ✔️ Ja | ✔️ Ja | Schnur | Name der Quelltabelle oder des Quellcontainers. | |
--permissions- | ✔️ Ja | ✔️ Ja | Schnur | Berechtigungen, die für den Zugriff auf die Quelltabelle oder den Quellcontainer erforderlich sind. Format: [role]:[actions] . |
|
--source.type | ❌ Nein | table |
✔️ Ja | Schnur | Typ des Datenbankobjekts. Unterstützte Werte: table , view , stored-procedure . |
--source.params | ❌ Nein | ✔️ Ja, wenn proc Params hat | Schnur | Ein Wörterbuch mit Parametern für gespeicherte Prozeduren und deren Datentypen. Unterstützte Datentypen sind string , number und boolean . Parameter werden im Format angegeben: paramName:type . Beispiel: --source.params "id:number,isActive:boolean,name:string" . |
|
--source.key felder | ✔️ Ja ¹ | ✔️ Ja | Schnur | Mindestens ein Feld, das nur als Primärschlüssel für Tabellen und Ansichten verwendet werden soll. Durch Trennzeichen getrennte Werte. Beispiel --source.key-fields "id,name,type" . |
|
--rest- | ❌ Nein | Entitätsnamen mit Beachtung der Groß-/Kleinschreibung | ✔️ Ja | Schnur | Route für REST-API. Beispiele: --rest: false –> Deaktiviert REST-API-Aufrufe für diese Entität.
--rest: true -> Entitätsname wird zum Restpfad.
--rest: "customPathName" –> Bereitgestellter customPathName wird zum REST-Pfad. |
--rest.methods | ❌ Nein | post |
✔️ Ja | Schnur | HTTP-Aktionen, die für gespeicherte Prozeduren unterstützt werden sollen. Geben Sie die Aktionen als durch Trennzeichen getrennte Liste an. Gültige HTTP-Aktionen sind:[get, post, put, patch, delete]. |
--graphql- | ❌ Nein | Entitätsnamen mit Beachtung der Groß-/Kleinschreibung | ✔️ Ja | Bool/Zeichenfolge | Entitätstyp, der für GraphQL verfügbar gemacht wird. Beispiele: --graphql: false –> deaktiviert Graphql-Aufrufe für diese Entität.
--graphql: true –> Macht die Entität für GraphQL mit Standardnamen verfügbar. Die Singularform des Entitätsnamens wird für die Abfrage- und Mutationsnamen berücksichtigt.
--graphql: "customQueryName" -> Legt den Singularwert explizit fest, während DAB den bereitgestellten Wert für Abfragen und Mutationen pluralisiert.
--graphql: "singularName:pluralName" -> Legt sowohl die Singular- als auch die Pluralwerte (getrennt durch einen Doppelpunkt : ) fest, der für Abfragen und Mutationen verwendet wird. |
--graphql.operation | ❌ Nein | mutation |
✔️ Ja | Schnur | GraphQL-Vorgang, der für gespeicherte Prozeduren unterstützt werden soll. Unterstützte Werte: query , mutation . |
--fields.include | ❌ Nein | ✔️ Ja | Schnur | Felder mit Zugriffsberechtigung. | |
--fields.exclude | ❌ Nein | ✔️ Ja | Schnur | Felder, die aus den Aktionslisten ausgeschlossen sind. | |
--policy-database | ❌ Nein | ✔️ Ja | Schnur | Geben Sie eine OData-Filterregel an, die in die an die Datenbank gesendete Abfrage eingefügt wird. | |
-c,--config | ❌ Nein | dab-config.json |
✔️ Ja | Schnur | Pfad zur Konfigurationsdatei. |
¹ Diese Option ist nur erforderlich, wenn --source.type
auf view
festgelegt ist.
update
Aktualisieren Sie die Eigenschaften einer Datenbankentität in der Konfigurationsdatei.
Anmerkung
dab update
unterstützt alle Optionen, die von dab add
unterstützt werden. Darüber hinaus werden auch die aufgeführten Optionen unterstützt.
Syntax
dab update [entity-name] [options]
Beispiele
dab update Publisher --permissions "authenticated:*"
Optionen
Optionen | Option Erforderlich | Standardwert | Wert erforderlich | Werttyp | Beschreibung |
---|---|---|---|---|---|
--Beziehung | ❌ Nein | ✔️ Ja | Schnur | Geben Sie die Beziehung zwischen zwei Entitäten an. Geben Sie den Namen der Beziehung an. | |
--Kardinalität | ✔️ Ja ¹ | ✔️ Ja | Schnur | Geben Sie die Kardinalität zwischen zwei Entitäten an. Dies kann eine oder mehrere sein. | |
--target.entity | ✔️ Ja ¹ | ✔️ Ja | Schnur | Eine andere verfügbar gemachte Entität, auf die sich die Quellentität bezieht. | |
--linking.object | ❌ Nein | ✔️ Ja | Schnur | Datenbankobjekt, das verwendet wird, um eine M:N-Beziehung zu unterstützen. | |
--linking.source.fields | ❌ Nein | ✔️ Ja | Schnur | Datenbankfelder im verknüpfenden Objekt, um eine Verbindung mit dem zugehörigen Element in der Quellentität herzustellen. Durch Trennzeichen getrennte Felder. | |
--linking.target.fields | ❌ Nein | ✔️ Ja | Schnur | Datenbankfelder im Verknüpfungsobjekt, um eine Verbindung mit dem zugehörigen Element in der Zielentität herzustellen. Durch Trennzeichen getrennte Felder. | |
--relationship.fields | ❌ Nein | ✔️ Ja | Schnur | Geben Sie Felder an, die zum Zuordnen der Entitäten verwendet werden sollen. Beispiel: --relationship.fields "id:book_id" . Hier stellt id die Spalte aus "sourceEntity" dar, während book_id von targetEntity. Fremdschlüssel sind zwischen den zugrunde liegenden Quellen erforderlich, falls nicht angegeben. |
|
-m,--map- | ❌ Nein | ✔️ Ja | Schnur | Geben Sie Zuordnungen zwischen Datenbankfeldern und GraphQL- und REST-Feldern an. Format: --map "backendName1:exposedName1, backendName2:exposedName2,..." . |
¹ Diese Option ist nur erforderlich, wenn die option --relationship
verwendet wird.
export
Exportieren Sie das erforderliche Schema als Datei, und speichern Sie es basierend auf den Optionen auf dem Datenträger.
Syntax
dab export [options]
Beispiele
dab export --graphql -o ./schemas
Optionen
Optionen | Option Erforderlich | Standardwert | Wert erforderlich | Werttyp | Beschreibung |
---|---|---|---|---|---|
--graphql- | ❌ Nein | false |
❌ Nein | Exportieren des GraphQL-Schemas. | |
-o,--output- | ✔️ Ja | ✔️ Ja | Schnur | Geben Sie das Verzeichnis an, um die Schemadatei zu speichern. | |
-g,--graphql-schema-file | ❌ Nein | schema.graphql |
✔️ Ja | Schnur | Geben Sie den Namen der Graphql-Schemadatei an. |
-c,--config | ❌ Nein | dab-config.json |
✔️ Ja | Schnur | Pfad zur Konfigurationsdatei. |
start
Starten Sie das Laufzeitmodul mit der bereitgestellten Konfigurationsdatei für die Bereitstellung von REST- und GraphQL-Anforderungen.
Syntax
dab start [options]
Beispiele
dab start
Optionen
Optionen | Option Erforderlich | Standardwert | Wert erforderlich | Werttyp | Beschreibung |
---|---|---|---|---|---|
--ausführlich | ❌ Nein | ❌ Nein | Geben Sie die Protokollierungsebene als Informationsebene an. | ||
--LogLevel- | ❌ Nein |
Debug , wenn hostMode=development Error , wenn HostMode=Production |
✔️ Ja | Schnur | Geben Sie die Protokollierungsebene als bereitgestellten Wert an. Beispiel: Debuggen, Fehler, Informationen usw. |
--no-https-redirect | ❌ Nein | ✔️ Ja | - | Deaktiviert automatische HTTPS-Umleitungen. | |
-c,--config | ❌ Nein | dab-config.json |
✔️ Ja | Schnur | Pfad zur Konfigurationsdatei. |
Anmerkung
Sie können --verbose
und --LogLevel
nicht gleichzeitig verwenden. Weitere Informationen zu verschiedenen Protokollierungsebenen finden Sie unter .NET-Protokollebenen.
validate
Überprüft die Laufzeitkonfigurationsdatei, die vom Laufzeitmodul des Daten-API-Generators verwendet wird. Der Überprüfungsprozess stellt sicher, dass die Konfigurationsdatei mit dem Schema kompatibel ist und alle erforderlichen Informationen enthält, damit das Laufzeitmodul ordnungsgemäß funktioniert.
Syntax
dab validate [options]
Beispiele
dab validate
Optionen
Optionen | Option Erforderlich | Standardwert | Wert erforderlich | Werttyp | Beschreibung |
---|---|---|---|---|---|
-c,--config | ❌ Nein | dab-config.json |
✔️ Ja | Schnur | Pfad zur Konfigurationsdatei, die das Ziel der Überprüfung ist. |
configure
Der Befehl dab configure
dient zum Vereinfachen der Aktualisierung von Konfigurationseigenschaften außerhalb des Entitätenabschnitts. In diesem Dokument werden die Design-, Funktionalitäts- und Implementierungsdetails des Befehls zum Konfigurieren von Dab beschrieben. Sie unterstützt das Bearbeiten der CLI für Konfigurationseigenschaften in Datenquellen- und Laufzeitabschnitten der Laufzeitkonfiguration.
Anmerkung
dab configure
dient nur zum Aktualisieren der Datenquellen- und Laufzeitabschnitte der Konfiguration. Für den Abschnitt "Entitäten" verfügen wir bereits über den Befehl "dab update".
Syntax
dab configure [options] [value]
Beispiele
dab configure --runtime.rest.enabled true
Optionen
Konfigurationsdateieigenschaft | CLI-Kennzeichnung | Datentyp | Nullable | Beschreibung |
---|---|---|---|---|
Datenquelle. Datenbanktyp |
|
Zeichenfolge: MSSQL , PostgreSQL , CosmosDB_NoSQL , MySQL |
❌ | Dieser Wert gibt den Datenbanktyp an. |
Datenquelle. Verbindungszeichenfolge |
|
Schnur | ❌ | Bezieht sich auf die Verbindungszeichenfolge für die Datenquelle. |
Datenquelle. options.database |
|
Schnur | ✅ | Bezieht sich auf den Datenbanknamen für Cosmos DB für NoSql. |
Datenquelle. options.container |
|
Schnur | ✅ | Bezieht sich auf den Containernamen für Cosmos DB für NoSql. |
Datenquelle. options.schema |
|
Schnur | ✅ | Stellt den Schemapfad für Cosmos DB für NoSql bereit. |
Datenquelle. options.set-session-context |
|
Boolescher Wert: true , false (Standard: true ) |
✅ | Gibt an, ob sitzungskontext aktiviert werden soll. |
Laufzeit. rest.enabled |
|
Boolescher Wert: true , false (Standard: true ) |
❌ | Gibt an, ob der REST-Endpunkt von DAB aktiviert werden soll. |
Laufzeit. rest.path |
|
Zeichenfolge (Standard: /api ) |
❌ | Passen Sie den REST-Endpunktpfad von DAB an. Bedingungen: Präfix mit '/', keine Leerzeichen und keine reservierten Zeichen. |
Laufzeit. rest.request-body-strict |
|
Boolescher Wert: true , false (Standard: true ) |
✅ | Erlaubt/verbietet zusätzliche REST-Anforderungstextfelder. |
Laufzeit. graphql.enabled |
|
Boolescher Wert: true , false (Standard: true ) |
❌ | Aktivieren/Deaktivieren des GraphQL-Endpunkts von DAB. |
Laufzeit. graphql.path |
|
Zeichenfolge (Standard: /graphql ) |
❌ | Passen Sie den GraphQL-Endpunktpfad von DAB an. Bedingungen: Präfix mit '/', keine Leerzeichen und keine reservierten Zeichen. |
Laufzeit. graphql.depth-limit |
|
Ganze Zahl | ✅ | Dies bezieht sich auf die maximal zulässige Tiefe der geschachtelten GraphQL-Abfrage. Zulässige Werte: (0.2147483647] einschließlich. Der Standardwert ist unendlich. Verwenden Sie -1, um den Grenzwert zu entfernen. |
Laufzeit. graphql.allow-introspection |
|
Boolescher Wert: true , false (Standard: true ) |
✅ | Allow/Deny GraphQL introspection requests in GraphQL Schema. |
Laufzeit. graphql.multiple-mutations.create.enabled |
|
Boolescher Wert: true , false (Standard: true ) |
✅ | Aktivieren/Deaktivieren von Multiple-Mutation-Erstellungsvorgängen im von DAB generierten GraphQL-Schema. |
Laufzeit. host.mode |
|
Zeichenfolge: Development , Production Standard: Development |
❌ | Legen Sie den Hostausführungsmodus von DAB in der Entwicklung oder Produktion fest. |
Laufzeit. host.cors.origins |
|
Array von Zeichenfolgen | ✅ | Verwenden Sie diese Methode, um zulässige Ursprünge in CORS zu überschreiben. Standard: [] (durch Leerzeichen getrenntes Array von Zeichenfolgen). |
Laufzeit. host.cors.allow-credentials |
|
Boolescher Wert: true , false (Standard: false ) |
✅ | Legen Sie den Wert für Access-Control Allow-Credentials Header in --host.cors.allow-credentials fest. |
Laufzeit. host.authentication.provider |
|
Zeichenfolge: StaticWebApps , AppService , AzureAD , Jwt |
✅ | Konfigurieren Sie den Namen des Authentifizierungsanbieters. Standard: StaticWebApps . |
Laufzeit. host.authentication.jwt.audience |
|
Array von Zeichenfolgen | ✅ | Verwenden Sie diese Einstellung, um die vorgesehenen Empfänger des Jwt-Tokens zu konfigurieren. |
Laufzeit. host.authentication.jwt.issuer |
|
Schnur | ✅ | Dies bezieht sich auf die Entität, die das Jwt-Token ausgestellt hat. |
Laufzeit. cache.enabled |
|
Boolescher Wert: true , false (Standard: false ) |
✅ | Aktivieren/Deaktivieren des DAB-Caches global. (Sie müssen auch den Cache der einzelnen Entitäten separat aktivieren.) |
Laufzeit. cache.ttl-seconds |
|
Ganze Zahl (Standard: 5 ) |
✅ | Passen Sie die globale Standardzeit des DAB-Caches in Sekunden an. |