Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le stored procedure possono essere esposte come endpoint REST o GraphQL in DAB. Ciò è utile per gli scenari che comportano logica personalizzata, filtro, convalida o risultati calcolati non gestiti da tabelle o viste semplici.
Configurazione
Per esporre una stored procedure:
- Impostare
source.typesu"stored-procedure" - Impostare
source.objectsul nome completo qualificato della procedura - Definire le opzioni opzionali
parameterscon le loro impostazioni predefinite, se necessario - Impostare
rest.methods(ad esempio,"GET","POST") orest: false - Impostare
graphql.operationsu"query"o"mutation"o omettere l'impostazione predefinita su"mutation" - Concedere l'autorizzazione usando l'azione
"execute"
Esempio di 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"
Esempio di configurazione
"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" ]
}
]
}
Supporto REST
- Supporta solo
GETePOST - Il valore predefinito è
POSTsemethodsviene omesso - Invia parametri tramite stringa di query con
GET - Invia parametri tramite il corpo JSON con
POST - Disabilita REST per una stored procedure se
"rest": falseè impostata
Richieste di esempio
GET /api/GetCowrittenBooksByAuthor?author=asimov
POST /api/GetCowrittenBooksByAuthor
{
"author": "asimov"
}
Supporto di GraphQL
- Richiede
graphql.operationche sia"query"o"mutation" - I campi sono preceduti automaticamente da
execute, ad esempioexecuteGetCowrittenBooksByAuthor - I parametri vengono passati come argomenti GraphQL
Esempio di GraphQL
query {
executeGetCowrittenBooksByAuthor(author: "asimov") {
id
title
}
}
Limitazioni
- Viene restituito solo il primo set di risultati
- L'impaginazione, il filtro e l'ordinamento non sono supportati
- Le relazioni non sono supportate
- Richiede metadati da
sys.dm_exec_describe_first_result_set - Non è possibile restituire un singolo elemento per chiave
- Nessuna autorizzazione a livello di parametro