저장 프로시저는 DAB에서 REST 또는 GraphQL 엔드포인트로 노출될 수 있습니다. 이는 사용자 지정 논리, 필터링, 유효성 검사 또는 단순 테이블 또는 뷰에서 처리되지 않는 계산 결과를 포함하는 시나리오에 유용합니다.
구성 / 설정
저장 프로시저를 노출하려면 다음을 수행합니다.
-
source.type를"stored-procedure"로 설정 - 정규화된 프로시저 이름으로 설정
source.object - 선택 사항
parameters를 필요한 경우 기본값과 함께 정의하십시오. - 설정
rest.methods(예:"GET","POST") 또는rest: false -
graphql.operation을"query"또는"mutation"로 설정하거나, 생략하여 기본값"mutation"로 설정하십시오. - 작업을 사용하여
"execute"권한 부여
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"
구성 예제
"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": false저장 프로시저에 대해 REST를 사용하지 않도록 설정합니다.
예제 요청
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 - 키로 단일 항목을 반환할 수 없음
- 매개 변수 수준 권한 부여 없음