Tạo một API
Tạo một APITạo một custom endpoint

Tạo một custom endpoint

Ngoài single endpoint, Gato GraphQL còn hỗ trợ các custom endpoint, để truy xuất và đăng dữ liệu cho một schema tùy chỉnh (chỉ chứa một tập con các kiểu có sẵn) và các quy tắc xác thực người dùng, nhằm đáp ứng nhu cầu của nhiều người dùng và ứng dụng khác nhau.

Chúng ta có thể tạo bao nhiêu custom endpoint tùy ý.

Ví dụ, chúng ta có thể tạo một custom endpoint cho:

  • Một khách hàng hoặc người dùng cụ thể, tại /graphql/my-client/
  • Một nhóm người dùng có quyền truy cập nhiều tính năng hơn (chẳng hạn người dùng PRO), tại /graphql/pro-users/
  • Cung cấp dữ liệu cho ứng dụng di động của chúng ta, tại /graphql/mobile-app/
  • Cho phép truy cập một API bên thứ ba, tại /graphql/external-api/
  • Các trường hợp khác

Trình chỉnh sửa Custom Endpoint

Thực thi custom endpoint trong một ứng dụng

Vui lòng làm theo hướng dẫn trong guide Kết nối đến máy chủ GraphQL từ một client.

Truy cập tất cả các custom endpoint

Nhấp vào "Custom Endpoints" trong menu của plugin, nó sẽ hiển thị danh sách tất cả các custom endpoint đã được tạo:

Custom Endpoints trong trang quản trị
Custom Endpoints trong trang quản trị

Tạo một custom endpoint mới

Nhấp vào nút "Add New GraphQL endpoint" để mở trình chỉnh sửa WordPress:

Tạo một Custom Endpoint mới

Đặt tiêu đề, đảm bảo permalink là đúng như mong muốn, chọn cấu hình schema và điều chỉnh các tùy chọn. Khi sẵn sàng, nhấp vào nút Publish, và custom endpoint sẽ được tạo, sử dụng permalink đã cấu hình làm URL endpoint.

Các liên kết đến endpoint (và source cùng các client) được hiển thị trong bảng điều khiển bên "Custom Endpoint Overview":

Custom Endpoint Overview

Cấu hình schema

Việc xác định những phần tử nào schema chứa, và người dùng sẽ có quyền truy cập như thế nào, được định nghĩa trong cấu hình schema.

Vì vậy chúng ta phải tạo một cấu hình schema, rồi chọn nó từ danh sách thả xuống (hoặc không dùng cái nào, hoặc dùng cái mặc định):

Chọn cấu hình schema

Endpoint riêng tư

Bằng cách đặt trạng thái của Custom Endpoint là private, endpoint chỉ có thể được truy cập bởi người dùng quản trị viên. Điều này ngăn dữ liệu của chúng ta bị chia sẻ vô tình với những người dùng không nên có quyền truy cập.

Ví dụ, chúng ta có thể tạo các Custom Endpoint riêng tư để giúp quản lý ứng dụng, chẳng hạn như truy xuất dữ liệu để tạo báo cáo với các chỉ số của chúng ta.

Custom Endpoint riêng tư

Endpoint được bảo vệ bằng mật khẩu

Nếu chúng ta tạo một Custom Endpoint cho một khách hàng cụ thể, chúng ta có thể gán mật khẩu cho nó, để cung cấp thêm một lớp bảo mật đảm bảo chỉ khách hàng đó mới có thể truy cập endpoint.

Custom Endpoint được bảo vệ bằng mật khẩu

Khi lần đầu truy cập một endpoint được bảo vệ bằng mật khẩu (dù truy cập trực tiếp vào endpoint, hoặc vào các client GraphiQL hay Interactive Schema của nó), chúng ta sẽ gặp màn hình yêu cầu nhập mật khẩu:

Custom Endpoint được bảo vệ bằng mật khẩu: Lần truy cập đầu tiên

Sau khi mật khẩu được cung cấp và xác thực, người dùng mới có thể truy cập endpoint hoặc client dự định:

Custom Endpoint được bảo vệ bằng mật khẩu: Sau khi ủy quyền

Tạo một hệ thống phân cấp endpoint

Vui lòng đọc hướng dẫn về tạo một hệ thống phân cấp API.

Vô hiệu hóa custom endpoint

Trong các tùy chọn, đặt "Enabled" thành false để vô hiệu hóa custom endpoint.

Tính năng này có thể hữu ích khi làm cho custom endpoint trở thành một phần của hệ thống phân cấp API, để cung cấp hành vi chung cho các custom endpoint con của nó, nhưng bản thân nó không cần phải được thực thi.

Mô tả custom endpoint

Sử dụng trường "Excerpt", từ bảng cài đặt Document, để đặt mô tả cho custom endpoint.

Tìm thêm thông tin trong guide Thêm mô tả cho API.

Các client của endpoint

Mỗi custom endpoint có bộ client riêng để tương tác.

Client GraphiQL

Thêm ?view=graphiql vào endpoint để truy cập client GraphiQL của nó:

Client GraphiQL của custom endpoint

Client GraphiQL cũng có thể được mở khi chỉnh sửa Custom Endpoint, trong bảng điều khiển bên "Custom Endpoint Overview":

Liên kết đến client GraphiQL của custom endpoint trong trình chỉnh sửa

Tương tự, client có thể được mở từ trang danh sách Custom Endpoints, trên liên kết "GraphiQL" khi di chuột qua mục đó:

Liên kết đến client GraphiQL của custom endpoint trong danh sách
Liên kết đến client GraphiQL của custom endpoint trong danh sách

Để vô hiệu hóa client GraphiQL, đặt tùy chọn "Expose GraphiQL client?" thành false trong trình chỉnh sửa Custom Endpoint.

Client Interactive Schema (Voyager)

Thêm ?view=schema vào endpoint để truy cập client Interactive Schema của nó, để hiển thị và tương tác với schema của endpoint:

Client Voyager của custom endpoint

Client Interactive Schema cũng có thể được mở khi chỉnh sửa Custom Endpoint, trong bảng điều khiển bên "Custom Endpoint Overview":

Liên kết đến client Interactive Schema của custom endpoint trong trình chỉnh sửa

Tương tự, client có thể được mở từ trang danh sách Custom Endpoints, trên liên kết "Interactive Schema" khi di chuột qua mục đó:

Liên kết đến client Interactive Schema của custom endpoint trong danh sách
Liên kết đến client Interactive Schema của custom endpoint trong danh sách

Để vô hiệu hóa client Interactive Schema, đặt tùy chọn "Expose the Interactive Schema client?" thành false trong trình chỉnh sửa Custom Endpoint.

Kiểm tra endpoint trước khi xuất bản trực tuyến

Một custom endpoint với trạng thái draft hoặc pending chỉ khả dụng cho những người dùng có quyền chỉnh sửa schema. Điều này cho phép họ:

  • Thực thi các GraphQL queries đối với nó
  • Truy cập các client GraphiQL và Voyager của endpoint

Sau đó, chúng ta có thể tạo một custom endpoint, gán một Cấu hình Schema, xuất bản nó dưới dạng draft hoặc pending, và kiểm tra nó (ví dụ: kiểm tra xem các quy tắc Kiểm soát Truy cập có phù hợp không).

Sau khi được phê duyệt, chúng ta mới đặt trạng thái của nó là publish, làm cho custom endpoint khả dụng cho mọi người.

Xem source

Thêm ?view=source vào endpoint, nó sẽ hiển thị cấu hình của endpoint (miễn là người dùng đã đăng nhập và vai trò người dùng có quyền truy cập):

Source của custom endpoint


Cấu hình trong trình chỉnh sửa WordPress

Đây là các trường nhập liệu trong phần thân của trình chỉnh sửa:

Trường nhậpMô tả
TitleTiêu đề của custom endpoint
Schema configurationTừ danh sách thả xuống, chọn cấu hình schema áp dụng cho custom endpoint, hoặc một trong các tùy chọn sau:
  • "Default": cấu hình schema là cái được chọn trong Cài đặt của plugin
  • "None": custom endpoint sẽ không bị ràng buộc
  • "Inherit from parent": Sử dụng cùng cấu hình schema với custom endpoint cha.
    Tùy chọn này khả dụng khi module "API Hierarchy" được bật, và custom endpoint có một query cha (được chọn trong cài đặt Document)
OptionsTùy chỉnh hành vi của custom endpoint:
  • Enabled?: Liệu custom endpoint có được bật hay không.
    Hữu ích khi cần vô hiệu hóa một custom endpoint là query cha trong một hệ thống phân cấp API
  • Expose GraphiQL client?: Bật/tắt việc gắn client GraphiQL vào endpoint, có thể truy cập qua ?view=graphiql
  • Expose the Interactive Schema client?: Bật/tắt việc gắn client Interactive Schema vào endpoint, có thể truy cập qua ?view=schema
  • Inherit query from ancestor(s)?: Sử dụng cùng query với custom endpoint cha.
    Tùy chọn này khả dụng khi module "API Hierarchy" được bật, và custom endpoint có một query cha (được chọn trong cài đặt Document)

Đây là các trường nhập liệu trong cài đặt Document:

Trường nhậpMô tả
PermalinkEndpoint mà custom endpoint sẽ khả dụng tại đó
CategoriesCó thể phân loại custom endpoint.
Ví dụ: mobile, app, v.v.
ExcerptCung cấp mô tả cho custom endpoint.
Trường nhập này khả dụng khi module "Excerpt as Description" được bật
Page attributesChọn một custom endpoint cha.
Trường nhập này khả dụng khi module "API Hierarchy" được bật