다음을 통해 공유


가상 GraphQL API 추가 및 필드 해결 프로그램 설정

적용 대상: 모든 API Management 계층

API Management에서는 두 가지 모델 중 하나에 GraphQL API를 추가할 수 있습니다. 즉, 기존 GraphQL 엔드포인트로 통과하거나 GraphQL 스키마를 가져오고 사용자 지정 필드 해결 프로그램을 사용하여 가상 GraphQL API를 만듭니다. 자세한 내용은 GraphQL 개요를 참조하세요.

참고 항목

현재 이 기능은 작업 영역에서 사용할 수 없습니다.

이 문서에서는 다음을 수행합니다.

  • GraphQL 스키마를 API Management 인스턴스로 가져오기
  • 기존 HTTP 엔드포인트를 사용하여 GraphQL 쿼리에 대한 해결 프로그램 설정
  • GraphQL API 테스트

기존 GraphQL 엔드포인트를 API로 노출하려면 GraphQL API 가져오기를 참조하세요.

필수 조건

  • 기존 API Management 인스턴스. 구독이 아직 없다면 하나를 만듭니다.
  • .graphql 확장명이 있는 유효한 GraphQL 스키마 파일.
  • 이 시나리오에서는 백 엔드 GraphQL 엔드포인트가 선택 사항입니다.

API Management 인스턴스로 이동

  1. Azure Portal에서 API Management 서비스를 검색하여 선택합니다.

    API Management Services 선택

  2. API Management 서비스 페이지에서 API Management 인스턴스를 선택합니다.

    API Management 인스턴스 선택

GraphQL 스키마 추가

  1. 측면 탐색 메뉴의 API 섹션 아래에서 API를 선택합니다.

  2. 새 API 정의 아래에서 GraphQL 아이콘을 선택합니다.

    API 목록에서 GraphQL 아이콘을 선택하는 스크린샷.

  3. 대화 상자에서 전체를 선택하고 필요한 양식 필드를 작성합니다.

    GraphQL API를 만들기 위한 필드의 스크린샷

    필드 Description
    표시 이름 GraphQL API가 표시되는 이름입니다.
    이름 GraphQL API의 원시 이름입니다. 표시 이름을 입력하면 자동으로 채워집니다.
    GraphQL 형식 가상 GraphQL을 선택하여 GraphQL 스키마 파일에서 가져옵니다.
    대체 GraphQL 엔드포인트 필요에 따라 GraphQL API 엔드포인트 이름이 있는 URL을 입력합니다. API Management는 사용자 지정 확인자가 필드에 대해 설정되지 않은 경우 이 엔드포인트에 GraphQL 쿼리를 전달합니다.
    설명 API에 대한 설명을 추가합니다.
    URL 구성표 GraphQL 엔드포인트를 기반으로 선택합니다. GraphQL API에 구독 유형이 포함된 경우 WebSocket 구성표(WS 또는 WSS)가 포함된 옵션 중 하나를 선택합니다. 기본 선택: HTTP(S).
    API URL 접미사 URL 접미사를 추가하여 이 API Management 인스턴스에서 이 API를 식별합니다. 접미사는 이 API Management 인스턴스에서 고유해야 합니다.
    기준 URL API 기준 URL을 표시하는 편집 불가능한 필드입니다.
    태그 GraphQL API를 새 태그 또는 기존 태그와 연결합니다.
    제품 GraphQL API를 제품과 연결하여 게시합니다.
    API 버전 관리 GraphQL API에 버전 관리 체계를 적용하려면 선택합니다.
  4. 만들기를 실행합니다.

  5. API를 만든 후 디자인 탭에서 스키마를 찾거나 수정합니다.

확인자 구성

스키마의 필드를 기존 HTTP 엔드포인트에 매핑하도록 해결 프로그램을 구성합니다. 여기에 높은 수준의 단계가 제공됩니다. 자세한 내용은 GraphQL 해결 프로그램 구성을 참조하세요.

다음 기본 GraphQL 스키마를 가져왔으며 사용자 쿼리에 대한 확인자를 설정하려 했다고 가정합니다.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. 측면 탐색 메뉴의 API 섹션 아래에서 API> GraphQL API를 선택합니다.

  2. 스키마 탭에서 해결 프로그램을 구성하려는 개체 형식의 필드에 대한 스키마를 검토합니다.

    1. 필드를 선택한 다음, 왼쪽 여백에 포인터를 올려놓습니다.

    2. + 해결 프로그램 추가를 선택합니다.

      포털에서 GraphQL 해결 프로그램을 추가하는 스크린샷

  3. 해결 프로그램 만들기 페이지에서 다음을 수행합니다.

    1. 원하는 경우 Name 속성을 업데이트하고 선택적으로 설명을 입력하고 형식필드 선택 항목을 확인하거나 업데이트합니다.
    2. 데이터 원본에서 HTTP API를 선택합니다.
  4. 해결 프로그램 정책 편집기에서 시나리오의 자식 요소로 <http-data-source> 요소를 업데이트합니다. 예를 들어 다음 해결 프로그램은 기존 HTTP 데이터 원본에 대한 GET 호출을 수행하여 사용자 필드를 검색합니다.

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    포털에서 해결 프로그램 정책을 구성하는 스크린샷

  5. 만들기를 실행합니다.

  6. 스키마의 다른 필드에 대한 데이터를 확인하려면 위의 단계를 반복하여 해결 프로그램을 만듭니다.

해결 프로그램 정책을 편집할 때 테스트 실행을 선택하여 스키마에 대해 유효성을 검사할 수 있는 데이터 원본에서 출력을 검사합니다. 오류가 발생하면 응답에 문제 해결 정보가 포함됩니다.

GraphQL API 테스트

  1. API Management 인스턴스로 이동합니다.

  2. 측면 탐색 메뉴의 API 섹션 아래에서 API를 선택합니다.

  3. 모든 API 아래에서 GraphQL API를 선택합니다.

  4. 테스트 탭을 선택하여 테스트 콘솔에 액세스합니다.

  5. 헤더 아래에서 다음을 수행합니다.

    1. 이름 드롭다운 메뉴에서 헤더를 선택합니다.
    2. 필드에서 값을 입력합니다.
    3. + 헤더 추가를 선택하여 헤더를 더 추가합니다.
    4. 휴지통 아이콘을 사용하여 헤더를 삭제합니다.
  6. 제품을 GraphQL API에 추가한 경우 제품 범위 적용 아래에서 제품 범위를 적용합니다.

  7. 쿼리 편집기 아래에서 다음 중 하나를 수행합니다.

    1. 측면 메뉴의 목록에서 하나 이상의 필드 또는 하위 필드를 선택합니다. 선택한 필드와 하위 필드가 쿼리 편집기에 표시됩니다.

    2. 쿼리 편집기에서 입력을 시작하여 쿼리를 작성합니다.

      쿼리 편집기에 필드를 추가하는 스크린샷

  8. 쿼리 변수 아래에서 동일한 쿼리 또는 변형을 다시 사용하고 다른 값을 전달하는 변수를 추가합니다.

  9. 보내기를 선택합니다.

  10. 응답을 봅니다.

    테스트 쿼리 응답을 보는 스크린샷.

  11. 이전 단계를 반복하여 다른 페이로드를 테스트합니다.

  12. 테스트가 완료되면 테스트 콘솔을 종료합니다.

GraphQL API 보호

GraphQL 관련 공격으로부터 보호하기 위해 기존 인증 및 권한 부여 정책GraphQL 유효성 검사 정책을 모두 적용하여 GraphQL API를 보호합니다.

다음 단계