Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les procédures stockées peuvent être exposées en tant que points de terminaison REST ou GraphQL dans DAB. Cela est utile pour les scénarios qui impliquent une logique personnalisée, un filtrage, une validation ou des résultats calculés non gérés par des tables ou des vues simples.
Paramétrage
Pour exposer une procédure stockée :
- Définir
source.typesur"stored-procedure" - Définir
source.objectsur le nom de procédure entièrement qualifié - Définir l’optionnel
parametersen utilisant ses valeurs par défaut, si nécessaire - Définir
rest.methods(par exemple,"GET","POST") ourest: false - Définissez
graphql.operationsur"query"ou"mutation", ou omettez pour revenir à"mutation" - Accorder une autorisation à l’aide de l’action
"execute"
Exemple CLI
dab add GetCowrittenBooksByAuthor \
--source dbo.stp_get_all_cowritten_books_by_author \
--source.type "stored-procedure" \
--source.params "searchType:default-value" \
--permissions "anonymous:execute" \
--rest.methods "get" \
--graphql.operation "query"
Exemple de configuration
"GetCowrittenBooksByAuthor": {
"source": {
"type": "stored-procedure",
"object": "dbo.stp_get_all_cowritten_books_by_author",
"parameters": {
"searchType": "default-value"
}
},
"rest": {
"methods": [ "GET" ]
},
"graphql": {
"operation": "query"
},
"permissions": [
{
"role": "anonymous",
"actions": [ "execute" ]
}
]
}
Prise en charge REST
- Prend en charge uniquement
GETetPOST - Défaut sur
POSTsimethodsest omis - Envoie des paramètres via une chaîne de requête avec
GET - Envoie des paramètres via le corps JSON avec
POST - Désactive REST pour une procédure stockée si
"rest": falseest défini
Exemples de requêtes
GET /api/GetCowrittenBooksByAuthor?author=asimov
POST /api/GetCowrittenBooksByAuthor
{
"author": "asimov"
}
Prise en charge de GraphQL
- Doit
graphql.operationêtre"query"ou"mutation" - Les champs sont préfixés automatiquement avec
execute, par exemple,executeGetCowrittenBooksByAuthor - Les paramètres sont passés en tant qu’arguments GraphQL
Exemple GraphQL
query {
executeGetCowrittenBooksByAuthor(author: "asimov") {
id
title
}
}
Limites
- Seul le premier jeu de résultats est retourné
- La pagination, le filtrage et l’ordre ne sont pas pris en charge
- Les relations ne sont pas prises en charge
- Nécessite des métadonnées à partir de
sys.dm_exec_describe_first_result_set - Impossible de retourner un seul élément avec une clé
- Aucune autorisation au niveau du paramètre