Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os procedimentos armazenados podem ser expostos como endpoints REST ou GraphQL no DAB. Isso é útil para cenários que envolvem lógica personalizada, filtragem, validação ou resultados computados não tratados por tabelas ou exibições simples.
Configuração
Para expor um procedimento armazenado:
- Definir
source.typecomo"stored-procedure" - Definir
source.objectcomo o nome do procedimento totalmente qualificado - Defina o
parametersopcional com seus valores padrão, se necessário - Definir
rest.methods(por exemplo,"GET","POST") ourest: false - Definir
graphql.operationcomo"query"ou"mutation", ou omitir como padrão para"mutation" - Conceder permissão usando a ação
"execute"
Exemplo da 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"
Exemplo de configuração
"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" ]
}
]
}
Suporte a REST
- Dá suporte somente
GETePOST - Define-se como padrão
POSTsemethodsfor omitido. - Envia parâmetros por meio de cadeia de caracteres de consulta com
GET - Envia parâmetros por meio do corpo JSON com
POST - Desabilita REST para um procedimento armazenado se
"rest": falseestiver definido
Solicitações de exemplo
GET /api/GetCowrittenBooksByAuthor?author=asimov
POST /api/GetCowrittenBooksByAuthor
{
"author": "asimov"
}
Suporte ao GraphQL
- Requer que
graphql.operationesteja"query"ou"mutation" - Os campos são prefixados automaticamente com
execute, por exemplo,executeGetCowrittenBooksByAuthor - Parâmetros são passados como argumentos GraphQL
Exemplo de GraphQL
query {
executeGetCowrittenBooksByAuthor(author: "asimov") {
id
title
}
}
Limitações
- Somente o primeiro conjunto de resultados é retornado
- Não há suporte para paginação, filtragem e ordenação
- Não há suporte para relações
- Requer metadados de
sys.dm_exec_describe_first_result_set - Não é possível retornar um único item por chave
- Nenhuma autorização no nível do parâmetro