Partager via


Commande update

Mettez à jour une définition d’entité existante dans le fichier de configuration du générateur d’API de données. Utilisez cette commande pour ajuster les métadonnées sources, les autorisations, l’exposition (REST/GraphQL), les stratégies, la mise en cache, les relations, les mappages et les métadonnées descriptives après l’ajout de l’entité.

Conseil / Astuce

Permet dab add de créer de nouvelles entités et dab update de les faire évoluer. Le remapping de nom de champ (--map) n’est disponible que dans update, pas dans add.

Syntaxe

dab update <entity-name> [options]

Aperçu rapide

Choix Résumé
<entity-name> Argument positionnel obligatoire. Nom de l’entité logique.
-s, --source Nom de la table source, de la vue ou de la procédure stockée.
--permissions Rôle et actions au role:actions format.
--description Remplacez la description de l’entité.
-c, --config Chemin d’accès au fichier de configuration. La résolution par défaut s’applique si elle est omise.
--help Affichez l’écran d’aide.
--version Affichez les informations de version.

Cache

Choix Résumé
--cache.enabled Activez ou désactivez la mise en cache d’entité.
--cache.ttl Durée de vie du cache en secondes.

Fields

Choix Résumé
--fields.exclude Liste séparée par des virgules de champs exclus.
--fields.include Liste séparée par des virgules des champs inclus (* = all).
-m, --map Paires de mappage de name:aliaschamps . Remplace l’ensemble entier.

Métadonnées de champs

Choix Résumé
--fields.name Nom de la colonne de base de données à décrire.
--fields.alias Alias du champ.
--fields.description Description du champ.
--fields.primary-key Définissez ce champ comme clé primaire.

GraphQL

Choix Résumé
--graphql Exposition GraphQL : false, , truesingularou singular:plural.
--graphql.operation Procédures stockées uniquement : query ou mutation (mutation par défaut).

Autorisations et stratégies

Choix Résumé
--permissions role:actions pour un seul rôle. Exécutez plusieurs fois pour plusieurs rôles.
--policy-database Filtre de style OData injecté dans la requête de base de données.
--policy-request Filtre de demande de pré-base de données.

Relations interpersonnelles

Choix Résumé
--relationship Nom de la relation. Utiliser avec les options de relation.
--cardinality Cardinalité de relation : one ou many.
--target.entity Nom de l’entité cible.
--linking.object Objet de liaison pour plusieurs-à-plusieurs.
--linking.source.fields Liaison de champs d’objet pointant vers la source.
--linking.target.fields Liaison de champs d’objet pointant vers la cible.
--relationship.fields Mappages de champs pour les relations directes.

REST

Choix Résumé
--rest Exposition REST : false, trueou chemin personnalisé.
--rest.methods Procédures stockées uniquement. Remplacez les verbes HTTP autorisés.

Origine

Choix Résumé
-s, --source Nom de l’objet de base de données sous-jacent.
--source.key-fields Obligatoire pour les vues ou les tables non PK.
--source.params Procédures stockées uniquement. Remplacez les paramètres par défaut.
--source.type Type de source : table, viewou stored-procedure.

Paramètres (procédures stockées)

Choix Résumé
--parameters.name Liste séparée par des virgules des noms de paramètres.
--parameters.description Liste séparée par des virgules des descriptions de paramètres.
--parameters.required Liste séparée par des virgules des indicateurs requis.
--parameters.default Liste séparée par des virgules des valeurs par défaut.

--cache.enabled

Activez ou désactivez la mise en cache pour cette entité.

Example

dab update \
  Book \
  --cache.enabled true

Configuration résultante

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

--cache.ttl

Définissez la durée de vie du cache en secondes. Effective uniquement si la mise en cache est activée.

Example

dab update \
  Book \
  --cache.ttl 600

Configuration résultante

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

Note

L’approvisionnement de la durée de vie lorsque le cache est désactivé n’a aucun effet tant que la mise en cache n’est pas activée.

--description

Remplacez la description de l’entité.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configuration résultante

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

--fields.exclude

Liste séparée par des virgules des champs à exclure.

Example

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

Configuration résultante

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

--fields.include

Liste de champs séparés par des virgules à inclure. * inclut tous les champs. Remplace la liste include existante.

Example

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

Configuration résultante

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

--graphql

Contrôler l’exposition GraphQL.

Example

dab update \
  Book \
  --graphql book:books

Configuration résultante

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

--graphql.operation

Procédures stockées uniquement. Définit le type d’opération. La valeur par défaut est mutation.

Example

dab update \
  RunReport \
  --graphql.operation query

Configuration résultante

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

Note

La fourniture de --graphql.operation tables ou de vues est ignorée.

-m, --map

Mapper les champs de base de données aux noms exposés. Remplace l’ensemble du jeu de mappages.

Example

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

Configuration résultante

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

Important

Tous les mappages existants sont remplacés. Restez tous les mappages que vous souhaitez conserver.

--permissions

Ajoute ou met à jour des autorisations pour un rôle unique et ses actions.

Vous pouvez exécuter dab update plusieurs fois (une fois par rôle) pour ajouter plusieurs rôles.

Example

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

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

Configuration résultante

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

Note

Si le rôle spécifié existe déjà, ses actions sont mises à jour ; sinon, le rôle est ajouté.

--policy-database

Filtre de style OData ajouté à la requête de base de données.

Example

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

Configuration résultante

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

--policy-request

Stratégie au niveau de la requête évaluée avant d’atteindre la base de données.

Example

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

Configuration résultante

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

--relationship

Définissez ou mettez à jour une relation. Utiliser avec d’autres options de relation.

Example

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

Configuration résultante

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

--cardinality

Cardinalité pour la relation. Utiliser avec --relationship.

Example

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

--target.entity

Nom de l’entité cible pour la relation. Utiliser avec --relationship.

Example

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

--linking.object

Plusieurs-à-plusieurs uniquement. Nom de l’objet de base de données utilisé comme objet de liaison.

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

Plusieurs-à-plusieurs uniquement. Liste séparée par des virgules de liaison de champs d’objet pointant vers l’entité source.

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

Plusieurs-à-plusieurs uniquement. Liste séparée par des virgules de liaison de champs d’objet pointant vers l’entité cible.

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

Mappages de champs séparés par des points pour les relations directes.

La --relationship.fields valeur est une liste séparée par des virgules de sourceField:targetField paires.

Example

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

Configuration résultante

{
  "entities": {
    "User": {
      "relationships": {
        "profile": {
          "source.fields": [ "id" ],
          "target.fields": [ "user_id" ]
        }
      }
    }
  }
}

--rest

Contrôler l’exposition REST.

Example

dab update \
  Book \
  --rest BooksApi

Configuration résultante

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

--rest.methods

Procédures stockées uniquement. Remplacez les méthodes HTTP autorisées. La valeur par défaut est POST.

Example

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

Configuration résultante

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

Note

L’approvisionnement --rest.methods pendant que REST est désactivé n’a aucun effet.

-s, --source

Mettez à jour l’objet de base de données sous-jacent.

Example

dab update \
  Book \
  --source dbo.Books

Configuration résultante

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

--source.key-fields

Pour les vues ou les tables sans PK déduite. Remplace les clés existantes. Non valide pour les procédures stockées.

Example

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

Configuration résultante

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

Note

L’utilisation --source.key-fields avec des procédures stockées n’est pas autorisée.

--source.params

Procédures stockées uniquement. Remplacez les paramètres par défaut.

Note

Dans la préversion v1.7, --source.params l’interface CLI est déconseillée. Utiliser --parameters.name--parameters.default//--parameters.description/--parameters.required.

Example

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

Configuration résultante

{
  "entities": {
    "RunReport": {
      "source": {
        "parameters": [
          { "name": "year", "required": false, "default": "2024" },
          { "name": "region", "required": false, "default": "west" }
        ]
      }
    }
  }
}

Note

L’utilisation --source.params avec des tables ou des vues n’est pas autorisée.

--source.type

Modifiez le type d’objet source.

Example

dab update \
  Book \
  --source.type view

Configuration résultante

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

--parameters.name

Procédures stockées uniquement. Liste séparée par des virgules des noms de paramètres.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configuration résultante

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

--parameters.description

Procédures stockées uniquement. Liste séparée par des virgules des descriptions de paramètres alignées sur --parameters.name.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--parameters.required

Procédures stockées uniquement. Liste séparée par des virgules des true/false valeurs alignées sur --parameters.name.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--parameters.default

Procédures stockées uniquement. Liste séparée par des virgules des valeurs par défaut alignées sur --parameters.name.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--fields.name

Nom de la colonne de base de données à décrire.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configuration résultante

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

--fields.alias

Alias du champ. Utilisez une liste séparée par des virgules alignée sur --fields.name.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab update \
  Products \
  --fields.name Id \
  --fields.alias product_id

--fields.description

Description du champ. Utilisez une liste séparée par des virgules alignée sur --fields.name.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--fields.primary-key

Indicateur de clé primaire pour le champ. Utilisez une liste séparée par des virgules de true/false valeurs alignées sur --fields.name.

Note

Cette option est disponible uniquement dans l’interface CLI de préversion v1.7 (actuellement RC). Installer avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

-c, --config

Chemin d’accès au fichier de configuration.

Example

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

--help

Affichez l’écran d’aide.

Example

dab update --help

--version

Affichez les informations de version.

Example

dab update --version

Important

La modification du type de source peut invalider d’autres propriétés. Par exemple, les vues nécessitent toujours des champs clés ; les procédures stockées ne peuvent pas définir de champs clés.