다음을 통해 공유


데이터 API 작성기에서 저장 프로시저 사용

저장 프로시저는 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 지원

  • GETPOST 만 지원합니다.
  • 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
  • 키로 단일 항목을 반환할 수 없음
  • 매개 변수 수준 권한 부여 없음