Partager via


Commande add

Ajoutez une nouvelle définition d’entité à un fichier de configuration existant du générateur d’API de données. Vous devez déjà avoir une configuration créée avec dab init. Permet dab update de modifier des entités après la création.

Conseil / Astuce

Permet dab add de créer de nouvelles entités et dab update de les faire évoluer.

Syntaxe

dab add <entity-name> [options]

Aperçu rapide

Choix Résumé
<entity-name> Argument positionnel obligatoire. Nom de l’entité logique.
-c, --config Chemin du fichier de configuration. dab-config.jsonpar défaut .
--cache.enabled Activez/désactivez la mise en cache pour l’entité.
--cache.ttl Durée de vie du cache en secondes.
--description Description de formulaire libre pour l’entité.
--fields.exclude Champs exclus séparés par des virgules.
--fields.include Champs autorisés séparés par des virgules (* = all).
--fields.name Noms de champs à décrire (séparés par des virgules ou reproductibles).
--fields.alias Alias de champ (séparés par des virgules, alignés sur --fields.name).
--fields.description Descriptions des champs (séparées par des virgules, alignées sur --fields.name).
--fields.primary-key Indicateurs de clé primaire (séparés par des virgules, alignés sur --fields.name).
--graphql Exposition GraphQL : false, , truesingularou singular:plural.
--graphql.operation Procédures stockées uniquement. Query ou Mutation (mutation par défaut).
--permissions Obligatoire. role:actions pour un seul rôle.
--policy-database Filtre de style OData appliqué dans la requête de base de données.
--policy-request Stratégie de requête évaluée avant l’appel de base de données.
--parameters.name Procédures stockées uniquement. Noms de paramètres (séparés par des virgules).
--parameters.description Procédures stockées uniquement. Descriptions des paramètres.
--parameters.required Procédures stockées uniquement. Indicateurs requis pour les paramètres.
--parameters.default Procédures stockées uniquement. Valeurs par défaut des paramètres.
--rest Exposition REST : false, ou trueitinéraire personnalisé.
--rest.methods Procédures stockées uniquement. Verbes autorisés : GET, , POSTPUT, PATCH, DELETE. POST par défaut.
-s, --source Obligatoire. Nom de l’objet de base de données (table, vue ou procédure stockée).
--source.key-fields Champ à utiliser comme clés primaires.
--source.params Procédures stockées uniquement. Valeurs de paramètre par défaut.
--source.type Type de source : table, view, stored-procedure (table par défaut).
--help Affichez cet écran d’aide.
--version Affichez les informations de version.

<entity-name>

Nom logique de l’entité dans la configuration. Respect de la casse.

Exemples rapides pour les tables, les vues et les procédures stockées

Ajouter une table

dab add Book \
  --source dbo.Books \
  --source.type table \
  --permissions "anonymous:read" \
  --description "Example for managing book inventory"

Ajouter une vue

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"

Ajouter une procédure stockée

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --source.params "year:2024,active:true" \
  --permissions "anonymous:execute" \
  --graphql.operation query \
  --description "Example for executing a stored procedure"

-c, --config

Chemin du fichier de configuration. La valeur par défaut est dab-config.json.

Example

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

--cache.enabled

Activez ou désactivez la mise en cache.

Example

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

Configuration résultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "cache": {
        "enabled": true
      }
    }
  }
}

--cache.ttl

Durée de vie du cache en secondes.

Example

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

Configuration résultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "cache": {
        "enabled": false,
        "ttl-seconds": 300
      }
    }
  }
}

--description

Description de texte libre 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 add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --description "Entity for managing book inventory"

Configuration résultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "description": "Entity for managing book inventory"
    }
  }
}

--fields.exclude

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

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --fields.exclude "internal_flag,secret_note"

Configuration résultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [ "internal_flag", "secret_note" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--fields.include

Liste de champs séparés par des virgules à exposer.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --fields.include "id,title,price"

Configuration résultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "include": [ "id", "title", "price" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--graphql

Contrôler l’exposition GraphQL.

Example

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

Configuration résultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "graphql": {
        "enabled": true,
        "type": {
          "singular": "book",
          "plural": "books"
        }
      }
    }
  }
}

--graphql.operation

Procédures stockées uniquement. Type d’opération GraphQL. La valeur par défaut est mutation.

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --permissions "admin:execute" \
  --graphql.operation Query

Configuration résultante

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ],
      "graphql": {
        "enabled": true,
        "operation": "query"
      }
    }
  }
}

--permissions

Définit des paires role→actions.

--permissions n’est pas reproductible. Pour ajouter d’autres rôles, exécutez-les dab add avec un rôle, puis exécutez-les dab update pour des rôles supplémentaires.

Example

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

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

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

Configuration résultante

{
  "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,
            "description": "Beginning of date range (inclusive)"
          },
          {
            "name": "EndDate",
            "required": true,
            "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

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

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 add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --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 add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --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 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"

Configuration résultante

{
  "entities": {
    "Products": {
      "source": { "type": "table", "object": "dbo.Products" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "*" } ] }
      ],
      "fields": [
        {
          "name": "ProductID",
          "alias": "product_id",
          "description": "Unique identifier for each product",
          "primary-key": true
        },
        {
          "name": "ProductName",
          "alias": "product_name",
          "description": "Display name of the product",
          "primary-key": false
        }
      ]
    }
  }
}

--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 add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --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 add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.description "Unique identifier"

--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 add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.primary-key "true"

Configuration résultante

{
  "entities": {
    "Products": {
      "source": { "type": "table", "object": "dbo.Products" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "*" } ] }
      ],
      "fields": [
        {
          "name": "ProductID",
          "primary-key": true
        }
      ]
    }
  }
}

--policy-database

Stratégie au niveau de la base de données.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --policy-database "region eq 'US'"

Configuration résultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "database": "region eq 'US'"
              }
            }
          ]
        }
      ]
    }
  }
}

--policy-request

Stratégie au niveau de la demande.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --policy-request "@claims.role == 'admin'"

Configuration résultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "request": "@claims.role == 'admin'"
              }
            }
          ]
        }
      ]
    }
  }
}

--rest

Contrôler l’exposition REST.

Example

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

Configuration résultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "rest": {
        "enabled": true,
        "path": "/BooksApi"
      }
    }
  }
}

--rest.methods

Procédures stockées uniquement. Verbes HTTP autorisés pour l’exécution : GET, , POSTPUT, PATCH, DELETE. La valeur par défaut est POST. Ignoré pour les tables/vues.

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --permissions "admin:execute" \
  --rest true \
  --rest.methods GET,POST

Configuration résultante

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ],
      "rest": {
        "enabled": true,
        "methods": [ "get", "post" ]
      }
    }
  }
}

-s, --source

Obligatoire. Nom de l’objet de base de données : table, vue, conteneur ou procédure stockée.

Example

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

Configuration résultante

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

--source.key-fields

Champ à utiliser comme clés primaires. Obligatoire pour les vues lors de la génération via l’interface CLI.

Example

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

Configuration résultante

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

--source.params

Procédures stockées uniquement. Paires séparées par name:value des virgules. Non autorisé pour les tables ou les vues.

Note

Dans l’interface CLI de préversion v1.7 (actuellement RC), --source.params est déconseillée. Utilisez --parameters.name, --parameters.defaultet les options associées --parameters.* à la place.

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --source.params "year:2024,active:true" \
  --permissions "admin:execute"

Configuration résultante

{
  "entities": {
    "BookProc": {
      "source": {
        "type": "stored-procedure",
        "object": "dbo.MyProc",
        "parameters": [
          {
            "name": "year",
            "required": false,
            "default": "2024"
          },
          {
            "name": "active",
            "required": false,
            "default": "True"
          }
        ]
      },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ]
    }
  }
}

--help

Affichez cet écran d’aide.

Example

dab add \
  --help

--version

Affichez les informations de version.

Example

dab add \
  --version

--source.type

Type d’objet de base de données. Par défaut : table.

Example

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

Configuration résultante

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