다음을 통해 공유


GraphQL 구독에 이벤트 게시

적용 대상: 모든 API Management 계층

publish-event 정책은 GraphQL API 스키마에 지정된 하나 이상의 구독에 이벤트를 게시합니다. 변형과 같은 다른 작업 유형에 대한 스키마의 관련 필드에 대해 GraphQL 해결 프로그램에서 정책을 구성합니다. 런타임에 이벤트는 연결된 GraphQL 클라이언트에 게시됩니다. API Management의 GraphQL API에 대해 자세히 알아봅니다.

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

정책 문

<http-data-source>
<!-- http-data-source is an example resolver policy -->
    <http-request>
    [...]
    </http-request>
    <http-response>
        [...]
        <publish-event>
            <targets>
                <graphql-subscription id="subscription field" />
            </targets>
        </publish-event>
    </http-response>
</http-data-source>

Elements

이름 설명 필수
대상 이벤트가 게시되는 target 하위 요소에 지정된 GraphQL 스키마에 있는 하나 이상의 구독입니다.

사용

사용법 참고 사항

  • 이 정책은 관련 GraphQL 쿼리 또는 변형이 실행될 때만 호출됩니다.

예시

다음 예제 정책 정의는 createUser 변형에 대한 해결 프로그램에서 구성됩니다. onUserCreated 구독에 이벤트를 게시합니다.

스키마 예제

type User {
  id: Int!
  name: String!
}


type Mutation {
    createUser(id: Int!, name: String!): User
}

type Subscription {
    onUserCreated: User!
}

예제 정책

<http-data-source>
    <http-request>
        <set-method>POST</set-method>
        <set-url>https://contoso.com/api/user</set-url>
        <set-body template="liquid">{ "id" : {{body.arguments.id}}, "name" : "{{body.arguments.name}}"}</set-body>
    </http-request>
    <http-response>
        <publish-event>
            <targets>
                <graphql-subscription id="onUserCreated" />
            </targets>
        </publish-event>
    </http-response>
</http-data-source>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.