Condividi tramite


update comando

Aggiornare una definizione di entità esistente nel file di configurazione di Generatore API dati. Usare questo comando per modificare i metadati di origine, le autorizzazioni, l'esposizione (REST/GraphQL), i criteri, la memorizzazione nella cache, le relazioni, i mapping e i metadati descrittivi per un'entità esistente.

Suggerimento

Usare dab add per creare nuove entità e dab update per evolverle. Per gestire i metadati dei campi, usare --fields.name con --fields.alias, --fields.descriptione --fields.primary-key.

Sintassi

dab update <entity-name> [options]

Sguardo rapido

Opzione Riassunto
<entity-name> Argomento posizionale obbligatorio. Nome dell'entità logica.
-s, --source Nome della tabella di origine, della vista o della stored procedure.
-m, --map Mapping tra campi di database e nomi esposti.
--permissions Ruolo e azioni in role:actions formato.
--description Sostituire la descrizione dell'entità.
-c, --config Percorso del file di configurazione. La risoluzione predefinita si applica se omessa.
--help Visualizzare la schermata della Guida.
--version Visualizzare le informazioni sulla versione.

Cache

Opzione Riassunto
--cache.enabled Abilitare o disabilitare la memorizzazione nella cache delle entità.
--cache.ttl Tempo di memorizzazione nella cache in secondi.

Fields

Opzione Riassunto
--fields.exclude Elenco delimitato da virgole di campi esclusi.
--fields.include Elenco delimitato da virgole di campi inclusi (* = all).

Metadati dei campi

Opzione Riassunto
--fields.name Nome della colonna del database da descrivere.
--fields.alias Alias per il campo.
--fields.description Descrizione per il campo.
--fields.primary-key Impostare questo campo come chiave primaria.

GraphQL

Opzione Riassunto
--graphql Esposizione graphQL: false, true, singularo singular:plural.
--graphql.operation Solo stored procedure: query o mutation (mutazione predefinita).

Autorizzazioni e criteri

Opzione Riassunto
--permissions role:actions per un singolo ruolo. Eseguire più volte per più ruoli.
--policy-database Filtro in stile OData inserito nella query del database.
--policy-request Filtro della richiesta di predatabase.

Relationships

Opzione Riassunto
--relationship Nome relazione. Usare con le opzioni di relazione.
--cardinality Cardinalità delle relazioni: one o many.
--target.entity Nome entità di destinazione.
--linking.object Collegamento dell'oggetto per molti-a-molti.
--linking.source.fields Collegamento di campi oggetto che puntano all'origine.
--linking.target.fields Collegamento di campi oggetto che puntano alla destinazione.
--relationship.fields Mapping dei campi per le relazioni dirette.

REST

Opzione Riassunto
--rest Esposizione REST: false, trueo percorso personalizzato.
--rest.methods Solo stored procedure. Sostituire i verbi HTTP consentiti.

Mappe

Opzione Riassunto
-m, --map Mapping tra campi di database e nomi esposti.

MCP

Opzione Riassunto
--mcp.dml-tools Abilitare o disabilitare gli strumenti DML MCP per questa entità.
--mcp.custom-tool Abilitare lo strumento personalizzato MCP (solo stored procedure).

Fonte

Opzione Riassunto
-s, --source Nome dell'oggetto di database sottostante.
--source.type Tipo di origine: table, viewo stored-procedure.
--source.params Valori predefiniti dei parametri per le stored procedure.
--source.key-fields Campi chiave primaria per viste o tabelle.

Parametri (stored procedure)

Opzione Riassunto
--parameters.name Elenco delimitato da virgole di nomi di parametri.
--parameters.description Elenco delimitato da virgole delle descrizioni dei parametri.
--parameters.required Elenco delimitato da virgole di flag obbligatori.
--parameters.default Elenco delimitato da virgole di valori predefiniti.

--cache.enabled

Abilitare o disabilitare la memorizzazione nella cache per questa entità.

Example

dab update \
  Book \
  --cache.enabled true

Configurazione risultante

{
  "entities": {
    "Book": {
      "cache": {}
    }
  }
}

Annotazioni

Quando la memorizzazione nella cache è abilitata (impostazione predefinita), l'interfaccia della riga di comando scrive un oggetto vuoto cache . La "enabled" proprietà viene visualizzata in modo esplicito solo quando è impostata su false.

--cache.ttl

Impostare time-to-live della cache in secondi. È efficace solo se la memorizzazione nella cache è abilitata.

Example

dab update \
  Book \
  --cache.ttl 600

Configurazione risultante

{
  "entities": {
    "Book": {
      "cache": {
        "ttl-seconds": 600
      }
    }
  }
}

Annotazioni

L'inserimento della durata (TTL) quando la cache è disabilitata non ha alcun effetto fino a quando non viene abilitata la memorizzazione nella cache.

--description

Sostituire la descrizione dell'entità.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  Book \
  --description "Updated description"

Configurazione risultante

{
  "entities": {
    "Book": {
      "description": "Updated description"
    }
  }
}

--fields.exclude

Elenco delimitato da virgole di campi da escludere.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --fields.exclude "internal_flag,secret_note"

Configurazione risultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [ "internal_flag", "secret_note" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--fields.include

Elenco delimitato da virgole di campi da includere. * include tutti i campi. Sostituisce l'elenco di inclusioni esistente.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --fields.include "id,title,author"

Configurazione risultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [],
                "include": [ "id", "title", "author" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--graphql

Controllare l'esposizione di GraphQL.

Example

dab update \
  Book \
  --graphql book:books

Configurazione risultante

{
  "entities": {
    "Book": {
      "graphql": {
        "enabled": true,
        "type": {
          "singular": "book",
          "plural": "books"
        }
      }
    }
  }
}

--graphql.operation

Solo stored procedure. Imposta il tipo di operazione. Il valore predefinito è mutation.

Example

dab update \
  RunReport \
  --graphql.operation query

Configurazione risultante

{
  "entities": {
    "RunReport": {
      "graphql": {
        "operation": "query"
      }
    }
  }
}

Annotazioni

L'inserimento --graphql.operation di tabelle o viste viene ignorato.

--permissions

Aggiunge o aggiorna le autorizzazioni per un singolo ruolo e le relative azioni.

È possibile eseguire dab update più volte (una volta per ogni ruolo) per aggiungere più ruoli.

Example

dab update \
  Book \
  --permissions "anonymous:read"

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

Configurazione risultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read"
            }
          ]
        },
        {
          "role": "authenticated",
          "actions": [
            { "action": "create" },
            { "action": "read" },
            { "action": "update" }
          ]
        }
      ]
    }
  }
}

Annotazioni

Se il ruolo specificato esiste già, le relative azioni vengono aggiornate; in caso contrario, viene aggiunto il ruolo .

--policy-database

Filtro in stile OData aggiunto alla query del database.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --policy-database "region eq 'US'"

Configurazione risultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "database": "region eq 'US'"
              }
            }
          ]
        }
      ]
    }
  }
}

--policy-request

Criteri a livello di richiesta valutati prima di raggiungere il database.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --policy-request "@claims.role == 'admin'"

Configurazione risultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "request": "@claims.role == 'admin'"
              }
            }
          ]
        }
      ]
    }
  }
}

--relationship

Definire o aggiornare una relazione. Usare con altre opzioni di relazione.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

Configurazione risultante

{
  "entities": {
    "User": {
      "relationships": {
        "profile": {
          "cardinality": "one",
          "target.entity": "Profile",
          "source.fields": [ "id" ],
          "target.fields": [ "user_id" ],
          "linking.source.fields": [],
          "linking.target.fields": []
        }
      }
    }
  }
}

--cardinality

Cardinalità per la relazione. Usare con --relationship.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

--target.entity

Nome dell'entità di destinazione per la relazione. Usare con --relationship.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

--linking.object

Solo molti-a-molti. Nome dell'oggetto di database da utilizzare come oggetto di collegamento.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--linking.source.fields

Solo molti-a-molti. Elenco delimitato da virgole di campi oggetto che puntano all'entità di origine.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--linking.target.fields

Solo molti-a-molti. Elenco delimitato da virgole di campi oggetto che puntano all'entità di destinazione.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--relationship.fields

Mapping di campi separati da due punti per le relazioni dirette.

Il --relationship.fields valore è un elenco delimitato da virgole di sourceField:targetField coppie.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

Configurazione risultante

{
  "entities": {
    "User": {
      "relationships": {
        "profile": {
          "cardinality": "one",
          "target.entity": "Profile",
          "source.fields": [ "id" ],
          "target.fields": [ "user_id" ],
          "linking.source.fields": [],
          "linking.target.fields": []
        }
      }
    }
  }
}

--rest

Controllare l'esposizione REST.

Example

dab update \
  Book \
  --rest BooksApi

Configurazione risultante

{
  "entities": {
    "Book": {
      "rest": {
        "enabled": true,
        "path": "/BooksApi"
      }
    }
  }
}

--rest.methods

Solo stored procedure. Sostituire i metodi HTTP consentiti. Il valore predefinito è POST.

Example

dab update \
  RunReport \
  --rest true \
  --rest.methods GET,POST

Configurazione risultante

{
  "entities": {
    "RunReport": {
      "rest": {
        "enabled": true,
        "methods": [ "get", "post" ]
      }
    }
  }
}

Annotazioni

L'inserimento --rest.methods mentre REST è disabilitato non ha alcun effetto.

-s, --source

Aggiornare l'oggetto di database sottostante.

Example

dab update \
  Book \
  --source dbo.Books

Configurazione risultante

{
  "entities": {
    "Book": {
      "source": {
        "object": "dbo.Books",
        "type": "table"
      }
    }
  }
}

--source.type

Modificare il tipo di oggetto di origine.

Annotazioni

Le viste richiedono --source.key-fields. Se si passa a view senza specificare key-fields, viene generato un errore.

Example

dab update \
  Book \
  --source.type view \
  --source.key-fields "id"

Configurazione risultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "view",
        "object": "Book"
      },
      "fields": [
        {
          "name": "id",
          "primary-key": true
        }
      ]
    }
  }
}

--source.params

Solo stored procedure. Valori predefiniti dei parametri come name:value coppie.

Example

dab update \
  RunReport \
  --source.params "startDate:2024-01-01,endDate:2024-12-31"

Configurazione risultante

{
  "entities": {
    "RunReport": {
      "source": {
        "type": "stored-procedure",
        "parameters": [
          {
            "name": "startDate",
            "required": false,
            "default": "2024-01-01"
          },
          {
            "name": "endDate",
            "required": false,
            "default": "2024-12-31"
          }
        ]
      }
    }
  }
}

--source.key-fields

Specificare i campi chiave primaria per le viste o le tabelle senza una chiave dedotta.

Example

dab update \
  Book \
  --source.type view \
  --source.key-fields "id"

Configurazione risultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "view",
        "object": "Book"
      },
      "fields": [
        {
          "name": "id",
          "primary-key": true
        }
      ]
    }
  }
}

Annotazioni

Le visualizzazioni richiedono sempre campi chiave. L'opzione --source.key-fields aggiunge voci alla fields matrice con "primary-key": true.

-m, --map

Specificare i mapping tra i nomi delle colonne di database e i nomi dei campi REST/GraphQL esposti.

Example

dab update \
  Book \
  --map "id:bookId,title:bookTitle"

Configurazione risultante

{
  "entities": {
    "Book": {
      "fields": [
        {
          "name": "id",
          "alias": "bookId",
          "primary-key": false
        },
        {
          "name": "title",
          "alias": "bookTitle",
          "primary-key": false
        }
      ]
    }
  }
}

Annotazioni

L'opzione --map crea voci nella fields matrice con il set di alias proprietà.

--parameters.name

Solo stored procedure. Elenco delimitato da virgole di nomi di parametri.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Suggerimento

Per definire i parametri della stored procedure, usare --parameters.name con --parameters.description, --parameters.requirede --parameters.default.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.required "true,true" \
  --parameters.description "Beginning of date range,End of date range"

Configurazione risultante

{
  "entities": {
    "GetOrdersByDateRange": {
      "source": {
        "parameters": [
          {
            "name": "StartDate",
            "description": "Beginning of date range",
            "required": true
          },
          {
            "name": "EndDate",
            "description": "End of date range",
            "required": true
          }
        ]
      }
    }
  }
}

--parameters.description

Solo stored procedure. Elenco delimitato da virgole delle descrizioni dei parametri allineate a --parameters.name.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.description "Beginning of date range,End of date range"

--parameters.required

Solo stored procedure. Elenco delimitato da virgole di true/false valori allineati a .--parameters.name

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.required "true,true"

--parameters.default

Solo stored procedure. Elenco delimitato da virgole di valori predefiniti allineati a --parameters.name.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "CustomerID" \
  --parameters.default "null"

--fields.name

Nome della colonna del database da descrivere.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  Products \
  --fields.name Id \
  --fields.primary-key true \
  --fields.description "Product Id"

Configurazione risultante

{
  "entities": {
    "Products": {
      "fields": [
        {
          "name": "Id",
          "description": "Product Id",
          "primary-key": true
        }
      ]
    }
  }
}

--fields.alias

Alias per il campo. Usare un elenco delimitato da virgole allineato a --fields.name.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Suggerimento

Usare --fields.alias con --fields.name per definire nomi di campo esposti.

Example

dab update \
  Products \
  --fields.name "Id,Title" \
  --fields.alias "product_id,product_title"

--fields.description

Descrizione per il campo. Usare un elenco delimitato da virgole allineato a --fields.name.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  Products \
  --fields.name Id \
  --fields.description "Product Id"

--fields.primary-key

Flag di chiave primaria per il campo. Usare un elenco delimitato da virgole di true/false valori allineati a .--fields.name

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Suggerimento

Usare --fields.primary-key con --fields.name per definire i campi chiave primaria per le viste o le tabelle senza una chiave dedotta.

Example

dab update \
  SalesSummary \
  --fields.name "year,region" \
  --fields.primary-key "true,true"

Configurazione risultante

{
  "entities": {
    "SalesSummary": {
      "fields": [
        {
          "name": "year",
          "primary-key": true
        },
        {
          "name": "region",
          "primary-key": true
        }
      ]
    }
  }
}

--mcp.dml-tools

Abilitare o disabilitare gli strumenti DML MCP (data manipulation language) per questa entità. Il valore predefinito è true.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  Book \
  --mcp.dml-tools false

Configurazione risultante

{
  "entities": {
    "Book": {
      "mcp": {
        "dml-tools": false
      }
    }
  }
}

Annotazioni

Quando --mcp.dml-tools viene usato, impostare mcp utilizzando il modulo oggetto in modo che la configurazione sia esplicita.

--mcp.custom-tool

Solo stored procedure. Abilitare lo strumento personalizzato MCP per questa entità. Il valore predefinito è false.

Annotazioni

Questa opzione è disponibile nell'interfaccia della 2.0.0-rc riga di comando. Il generatore di API dati 2.0 è attualmente in anteprima. Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  RunReport \
  --mcp.custom-tool true

Configurazione risultante

{
  "entities": {
    "RunReport": {
      "mcp": {
        "custom-tool": true
      }
    }
  }
}

-c, --config

Percorso del file di configurazione.

Example

dab update \
  Book \
  --description "Updated description" \
  --config dab-config.json

--help

Visualizzare la schermata della Guida.

Example

dab update --help

--version

Visualizzare le informazioni sulla versione.

Example

dab update --version

Importante

La modifica del tipo di origine può invalidare altre proprietà. Ad esempio, le visualizzazioni richiedono sempre campi chiave; Le stored procedure non possono definire campi chiave.