Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хранимые процедуры могут быть представлены как конечные точки REST или GraphQL в DAB. Это полезно для сценариев, которые включают пользовательскую логику, фильтрацию, проверку или вычисляемые результаты, которые не обрабатываются простыми таблицами или представлениями.
Конфигурация
Чтобы открыть доступ к хранимой процедуре, выполните приведенные ниже действия.
- Установите
source.typeна"stored-procedure" - Задайте
source.objectполное имя процедуры - При необходимости определите необязательные
parametersсо значениями по умолчанию. - Задать
rest.methods(например,"GET","POST") илиrest: false - Установите
graphql.operationна"query"или"mutation", или пропустите, чтобы установить значение по умолчанию"mutation". - Предоставление разрешения с помощью
"execute"действия
Пример интерфейса командной строки
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"
Пример конфигурации
"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" ]
}
]
}
Поддержка REST
- Поддерживает только
GETиPOST -
POSTпо умолчанию, еслиmethodsопущено - Отправляет параметры с помощью строки запроса
GET - Отправляет параметры в теле JSON с помощью
POST - Отключает REST для хранимой процедуры, если
"rest": falseзадано значение
Примеры запросов
GET /api/GetCowrittenBooksByAuthor?author=asimov
POST /api/GetCowrittenBooksByAuthor
{
"author": "asimov"
}
Поддержка GraphQL
- Требуется, чтобы
graphql.operationбыло"query"или"mutation" - Поля автоматически префиксируются как
execute, например,executeGetCowrittenBooksByAuthor - Параметры передаются в качестве аргументов GraphQL
Пример GraphQL
query {
executeGetCowrittenBooksByAuthor(author: "asimov") {
id
title
}
}
Ограничения
- Возвращается только первый результирующий набор .
- Разбиение на страницы, фильтрация и упорядочение не поддерживаются
- Связи не поддерживаются
- Требуется метаданные из
sys.dm_exec_describe_first_result_set - Не удается вернуть один элемент по ключу
- Авторизация на уровне параметров отсутствует