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 dopo l'aggiunta dell'entità.

Suggerimento

Usare dab add per creare nuove entità e dab update per evolverle. Il mapping del nome del campo (--map) è disponibile solo in update, non in add.

Sintassi

dab update <entity-name> [options]

Sguardo rapido

Opzione Riassunto
<entity-name> Argomento posizionale obbligatorio. Nome dell'entità logica.
-c, --config Percorso del file di configurazione. La risoluzione predefinita si applica se omessa.
--description Sostituire la descrizione dell'entità.

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).
-m, --map Coppie di mapping dei campi name:alias. Sostituisce l'intero set.

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 Una o più role:actions coppie. Sostituisce l'elenco esistente.
--policy-database Filtro in stile OData inserito nella query di database.
--policy-request Filtro di richiesta pre-database.

Relationships

Opzione Riassunto
--relationship Nome relazione. Usare con le opzioni di relazione.
--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.

Fonte

Opzione Riassunto
-s, --source Nome dell'oggetto di database sottostante.
--source.key-fields Obbligatorio per le viste o le tabelle non PK.
--source.params Solo stored procedure. Sostituire i parametri predefiniti.
--source.type Tipo di origine: table, viewo stored-procedure.

--cache.enabled

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

Example

dab update Book --cache.enabled true

Configurazione risultante

{
  "entities": {
    "Book": {
      "cache": {
        "enabled": true
      }
    }
  }
}

--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 finché non viene abilitata la memorizzazione nella cache.

--description

Sostituire la descrizione dell'entità.

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 --fields.exclude "internal_flag,secret_note"

Configurazione risultante

{
  "entities": {
    "Book": {
      "graphql": {
        "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 --fields.include "id,title,author"

Configurazione risultante

{
  "entities": {
    "Book": {
      "graphql": {
        "fields": {
          "include": [ "id", "title", "author" ]
        }
      }
    }
  }
}

--graphql

Controllare l'esposizione di GraphQL.

Example

dab update Book --graphql book:books

Configurazione risultante

{
  "entities": {
    "Book": {
      "graphql": {
        "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.

-m, --map

Eseguire il mapping dei campi del database ai nomi esposti. Sostituisce l'intero set di mapping.

Example

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

Configurazione risultante

{
  "entities": {
    "Book": {
      "mappings": {
        "id": "bookId",
        "title": "bookTitle"
      }
    }
  }
}

Importante

Tutti i mapping esistenti vengono sovrascritti. Riformulare tutti i mapping da mantenere.

--permissions

Sostituire tutte le autorizzazioni con nuovi set di ruoli/azioni. Ripetere il flag per più ruoli.

Example

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

Configurazione risultante

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

Importante

Le autorizzazioni sostituiscono l'elenco esistente. Le autorizzazioni precedenti vengono rimosse.

--policy-database

Filtro in stile OData aggiunto alla query di database.

Example

dab update Book --policy-database "region eq 'US'"

Configurazione risultante

{
  "entities": {
    "Book": {
      "policies": {
        "database": "region eq 'US'"
      }
    }
  }
}

--policy-request

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

Example

dab update Book --policy-request "@claims.role == 'admin'"

Configurazione risultante

{
  "entities": {
    "Book": {
      "policies": {
        "request": "@claims.role == 'admin'"
      }
    }
  }
}

--relationship

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

Example

dab update Book --relationship publisher --cardinality one --target.entity Publisher --relationship.fields "publisher_id:id"

Configurazione risultante

{
  "entities": {
    "Book": {
      "relationships": {
        "publisher": {
          "cardinality": "one",
          "target.entity": "Publisher",
          "fields": {
            "publisher_id": "id"
          }
        }
      }
    }
  }
}

--relationship.fields

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

Example

dab update Book --relationship author --cardinality one --target.entity Author --relationship.fields "author_id:id"

Configurazione risultante

{
  "entities": {
    "Book": {
      "relationships": {
        "author": {
          "cardinality": "one",
          "target.entity": "Author",
          "fields": {
            "author_id": "id"
          }
        }
      }
    }
  }
}

--rest

Controllare l'esposizione REST.

Example

dab update Book --rest BooksApi

Configurazione risultante

{
  "entities": {
    "Book": {
      "rest": {
        "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": {
        "path": "RunReport",
        "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": {
        "type": "table",
        "object": "dbo.Books"
      }
    }
  }
}

--source.key-fields

Per le viste o le tabelle senza un'infrastruttura a chiave pubblica dedotta. Sostituisce le chiavi esistenti. Non valido per le stored procedure.

Example

dab update SalesSummary --source.type view --source.key-fields "year,region"

Configurazione risultante

{
  "entities": {
    "SalesSummary": {
      "source": {
        "type": "view",
        "object": "SalesSummary",
        "keyFields": [ "year", "region" ]
      }
    }
  }
}

Annotazioni

L'utilizzo di --source.key-fields con stored procedure non è consentito.

--source.params

Solo stored procedure. Sostituire i valori predefiniti dei parametri.

Example

dab update RunReport --source.type stored-procedure --source.params "year:2024,region:west"

Configurazione risultante

{
  "entities": {
    "RunReport": {
      "source": {
        "type": "stored-procedure",
        "object": "RunReport",
        "params": {
          "year": 2024,
          "region": "west"
        }
      }
    }
  }
}

Annotazioni

L'uso di --source.params con tabelle o viste non è consentito.

--source.type

Modificare il tipo di oggetto di origine.

Example

dab update Book --source.type view

Configurazione risultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "view",
        "object": "Book"
      }
    }
  }
}

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.