API 만들기
API 만들기커스텀 엔드포인트 만들기

커스텀 엔드포인트 만들기

단일 엔드포인트 외에도, Gato GraphQL은 커스텀 엔드포인트를 지원합니다. 커스텀 스키마(사용 가능한 타입의 일부만 포함)와 사용자 검증 규칙을 기반으로 데이터를 조회하거나 전송할 수 있으며, 다양한 사용자와 애플리케이션의 요구에 대응할 수 있습니다.

필요한 만큼 커스텀 엔드포인트를 만들 수 있습니다.

예를 들어, 다음과 같은 커스텀 엔드포인트를 만들 수 있습니다:

  • 특정 클라이언트나 사용자를 위한 엔드포인트 (/graphql/my-client/)
  • 더 많은 기능에 접근할 수 있는 사용자 그룹을 위한 엔드포인트(PRO 사용자 등) (/graphql/pro-users/)
  • 모바일 앱에 데이터를 제공하기 위한 엔드포인트 (/graphql/mobile-app/)
  • 서드파티 API에 대한 접근을 제공하기 위한 엔드포인트 (/graphql/external-api/)
  • 기타

커스텀 엔드포인트 에디터

애플리케이션에서 커스텀 엔드포인트 실행하기

가이드 「클라이언트에서 GraphQL 서버로 연결하기」의 지침을 따라 주세요.

모든 커스텀 엔드포인트 접근하기

플러그인 메뉴에서 "Custom Endpoints"를 클릭하면 생성된 커스텀 엔드포인트의 목록이 표시됩니다:

관리자 화면의 커스텀 엔드포인트
관리자 화면의 커스텀 엔드포인트

새 커스텀 엔드포인트 만들기

"Add New GraphQL endpoint" 버튼을 클릭하여 WordPress 에디터를 엽니다:

새 커스텀 엔드포인트 만들기

제목을 입력하고, 퍼머링크가 원하는 대로 설정되어 있는지 확인한 후, 스키마 설정을 선택하고 옵션을 조정합니다. 준비가 되면 Publish 버튼을 클릭하면, 설정한 퍼머링크를 엔드포인트 URL로 사용하는 커스텀 엔드포인트가 생성됩니다.

엔드포인트(및 소스와 클라이언트)로의 링크는 "Custom Endpoint Overview" 사이드바 패널에 표시됩니다:

Custom Endpoint Overview

스키마 설정

스키마에 포함되는 요소와 사용자가 스키마에 접근할 수 있는 범위는 스키마 설정에서 정의됩니다.

따라서 스키마 설정을 만들고, 드롭다운에서 선택해야 합니다(또는 없음 또는 기본값 사용):

스키마 설정 선택하기

비공개 엔드포인트

커스텀 엔드포인트의 상태를 private으로 설정하면, 관리자 사용자만 엔드포인트에 접근할 수 있습니다. 이를 통해 접근 권한이 없는 사용자에게 데이터가 의도치 않게 공유되는 것을 방지할 수 있습니다.

예를 들어, 지표 보고서 작성을 위한 데이터 조회 등 애플리케이션 관리를 지원하는 비공개 커스텀 엔드포인트를 만들 수 있습니다.

비공개 커스텀 엔드포인트

비밀번호로 보호된 엔드포인트

특정 클라이언트를 위한 커스텀 엔드포인트를 만드는 경우, 비밀번호를 지정하여 해당 클라이언트만 엔드포인트에 접근할 수 있도록 추가적인 보안 레벨을 제공할 수 있습니다.

비밀번호로 보호된 커스텀 엔드포인트

비밀번호로 보호된 엔드포인트에 처음 접근할 때(엔드포인트에 직접 접근하거나 GraphiQL 또는 Interactive Schema 클라이언트에 접근하는 경우), 비밀번호를 요청하는 화면이 표시됩니다:

비밀번호로 보호된 커스텀 엔드포인트: 첫 번째 접근

비밀번호가 입력되고 확인되면, 그때서야 사용자는 원하는 엔드포인트나 클라이언트에 접근할 수 있습니다:

비밀번호로 보호된 커스텀 엔드포인트: 인증 후

엔드포인트 계층 구조 만들기

API 계층 구조 만들기의 지침을 읽어 주세요.

커스텀 엔드포인트 비활성화하기

옵션에서 "Enabled"를 false로 설정하면 커스텀 엔드포인트를 비활성화할 수 있습니다.

이 기능은 커스텀 엔드포인트를 API 계층 구조의 일부로 사용하여 하위 커스텀 엔드포인트에 공통 동작을 제공하되, 자체적으로는 실행될 필요가 없는 경우에 유용합니다.

커스텀 엔드포인트 설명하기

문서 설정 패널의 "Excerpt" 필드를 사용하여 커스텀 엔드포인트에 설명을 추가합니다.

자세한 내용은 가이드 「API에 설명 추가하기」에서 확인하세요.

엔드포인트 클라이언트

각 커스텀 엔드포인트에는 상호 작용을 위한 전용 클라이언트 세트가 있습니다.

GraphiQL 클라이언트

엔드포인트에 ?view=graphiql을 추가하면 GraphiQL 클라이언트에 접근할 수 있습니다:

커스텀 엔드포인트의 GraphiQL 클라이언트

GraphiQL 클라이언트는 커스텀 엔드포인트 편집 시 "Custom Endpoint Overview" 사이드바 패널에서도 열 수 있습니다:

에디터 내 커스텀 엔드포인트의 GraphiQL 클라이언트 링크

마찬가지로, 커스텀 엔드포인트 목록 페이지에서 항목 위에 마우스를 올리면 표시되는 "GraphiQL" 링크를 통해 클라이언트를 열 수 있습니다:

목록 내 커스텀 엔드포인트의 GraphiQL 클라이언트 링크
목록 내 커스텀 엔드포인트의 GraphiQL 클라이언트 링크

GraphiQL 클라이언트를 비활성화하려면, 커스텀 엔드포인트 에디터에서 옵션 "Expose GraphiQL client?"를 false로 설정합니다.

Interactive Schema (Voyager) 클라이언트

엔드포인트에 ?view=schema를 추가하면 Interactive Schema 클라이언트에 접근하여 엔드포인트의 스키마를 시각화하고 상호 작용할 수 있습니다:

커스텀 엔드포인트의 Voyager 클라이언트

Interactive Schema 클라이언트는 커스텀 엔드포인트 편집 시 "Custom Endpoint Overview" 사이드바 패널에서도 열 수 있습니다:

에디터 내 커스텀 엔드포인트의 Interactive Schema 클라이언트 링크

마찬가지로, 커스텀 엔드포인트 목록 페이지에서 항목 위에 마우스를 올리면 표시되는 "Interactive Schema" 링크를 통해 클라이언트를 열 수 있습니다:

목록 내 커스텀 엔드포인트의 Interactive Schema 클라이언트 링크
목록 내 커스텀 엔드포인트의 Interactive Schema 클라이언트 링크

Interactive Schema 클라이언트를 비활성화하려면, 커스텀 엔드포인트 에디터에서 옵션 "Expose the Interactive Schema client?"를 false로 설정합니다.

온라인 게시 전에 엔드포인트 테스트하기

상태가 draft(초안) 또는 pending(보류 중)인 커스텀 엔드포인트는 스키마 에디터 사용자만 이용할 수 있습니다. 이를 통해 다음 작업이 가능합니다:

  • 엔드포인트에 대해 GraphQL 쿼리를 실행하기
  • 엔드포인트의 GraphiQL 및 Voyager 클라이언트에 접근하기

커스텀 엔드포인트를 만들고, 스키마 설정을 지정한 후, draft 또는 pending으로 게시하여 테스트(예: 접근 제어 규칙이 적절한지 확인)할 수 있습니다.

승인되면, 그때서야 상태를 publish로 설정하여 커스텀 엔드포인트를 모든 사용자가 이용할 수 있도록 합니다.

소스 보기

엔드포인트에 ?view=source를 추가하면 엔드포인트의 설정이 표시됩니다(사용자가 로그인되어 있고, 사용자 역할이 접근 권한을 가진 경우):

커스텀 엔드포인트 소스


WordPress 에디터에서의 설정

에디터 본문의 입력 항목은 다음과 같습니다:

입력 항목설명
제목커스텀 엔드포인트의 제목
스키마 설정드롭다운에서 커스텀 엔드포인트에 적용할 스키마 설정을 선택하거나, 다음 옵션 중 하나를 선택합니다:
  • "Default": 플러그인 설정에서 선택된 스키마 설정을 사용
  • "None": 커스텀 엔드포인트에 제약을 두지 않음
  • "Inherit from parent": 부모 커스텀 엔드포인트와 동일한 스키마 설정을 사용.
    이 옵션은 모듈 "API Hierarchy"가 활성화되어 있고, 커스텀 엔드포인트에 부모 쿼리가 있는 경우(문서 설정에서 선택)에 사용 가능합니다
옵션커스텀 엔드포인트의 동작을 맞춤 설정합니다:
  • Enabled?: 커스텀 엔드포인트의 활성화 여부.
    API 계층 구조에서 부모 쿼리인 커스텀 엔드포인트를 비활성화할 때 유용합니다
  • Expose GraphiQL client?: 엔드포인트에 GraphiQL 클라이언트를 연결할지 여부를 활성화/비활성화합니다(?view=graphiql에서 접근 가능)
  • Expose the Interactive Schema client?: 엔드포인트에 Interactive Schema 클라이언트를 연결할지 여부를 활성화/비활성화합니다(?view=schema에서 접근 가능)
  • Inherit query from ancestor(s)?: 부모 커스텀 엔드포인트와 동일한 쿼리를 사용합니다.
    이 옵션은 모듈 "API Hierarchy"가 활성화되어 있고, 커스텀 엔드포인트에 부모 쿼리가 있는 경우(문서 설정에서 선택)에 사용 가능합니다

문서 설정의 입력 항목은 다음과 같습니다:

입력 항목설명
퍼머링크커스텀 엔드포인트가 사용 가능해질 엔드포인트 URL
카테고리커스텀 엔드포인트를 분류할 수 있습니다.
예: mobile, app
Excerpt커스텀 엔드포인트에 대한 설명을 제공합니다.
이 입력 항목은 모듈 "Excerpt as Description"이 활성화된 경우에 사용 가능합니다
페이지 속성부모 커스텀 엔드포인트를 선택합니다.
이 입력 항목은 모듈 "API Hierarchy"가 활성화된 경우에 사용 가능합니다