Tạo một API
Tạo một APITạo một persisted query

Tạo một persisted query

Một persisted query là sự kết hợp giữa GraphQL và REST API: đó là một queries GraphQL thông thường, được xuất bản trên trang web và truy cập qua URL riêng của nó, tương tự như một REST endpoint.

Ví dụ, chúng ta có thể hiển thị dữ liệu cho một trang web thông qua các persisted queries sau:

  • /graphql-query/homepage-posts
  • /graphql-query/user-widget
  • /graphql-query/post-content và thực thi nó bằng cách truyền ID của bài viết: ?post=1
  • /graphql-query/post-content/es để dịch nội dung bài viết sang tiếng Tây Ban Nha
  • Và các queries khác

Trình soạn thảo persisted query

Thực thi persisted query

Sau khi persisted query được xuất bản, chúng ta có thể thực thi nó qua permalink của nó.

Persisted query có thể được thực thi trực tiếp trong trình duyệt vì nó được truy cập qua GET, và chúng ta sẽ nhận được dữ liệu yêu cầu ở định dạng JSON:

Thực thi một persisted query trong trình duyệt

Thực thi persisted query trong một ứng dụng

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

Truy cập tất cả các persisted queries

Nhấp vào "Persisted Queries" trong menu của plugin sẽ hiển thị danh sách tất cả các persisted queries đã tạo:

Persisted Queries trong trang quản trị
Persisted Queries trong trang quản trị

Tạo một persisted query mới

Nhấp vào nút "Add New GraphQL persisted query" để mở trình soạn thảo WordPress:

Tạo một persisted query

Đặt tiêu đề và đảm bảo permalink là đúng như mong muốn, nhập queries GraphQL, 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à permalink sẽ trở thành endpoint của persisted query.

Liên kết đến endpoint (và đến nguồn) được hiển thị trong bảng điều khiển bên "Persisted Query Endpoint Overview":

Persisted Query Endpoint Overview

Theo mặc định, endpoint của persisted query có đường dẫn /graphql-query/, và giá trị này có thể cấu hình thông qua Cài đặt:

Cài đặt persisted query
Cài đặt persisted query

Trình soạn thảo queries

Client GraphiQL trong trình soạn thảo là nơi để nhập persisted queries GraphQL:

Client GraphiQL của persisted query

Trình soạn thảo đi kèm với tiện ích bổ sung Explorer, cho phép soạn queries bằng cách nhấp vào các trường ở bảng điều khiển bên trái. Nhấp vào nút "Run" để thực thi queries, xem trước kết quả phản hồi:

Soạn một persisted query với Explorer

Cấu hình schema

Việc xác định ai có thể truy cập các trường được yêu cầu trong persisted query đượ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, sau đó chọn nó từ danh sách thả xuống (hoặc không chọn gì, hoặc chọn cái mặc định):

Chọn cấu hình schema

Persisted queries riêng tư

Bằng cách đặt trạng thái của Persisted Query là private, endpoint chỉ có thể được truy cập bởi người dùng quản trị. Đ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 Persisted Queries riêng tư để hỗ trợ quản lý ứng dụng, chẳng hạn như lấy dữ liệu để tạo báo cáo với các số liệu của mình.

Persisted Query riêng tư

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

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

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

Khi truy cập lần đầu vào một persisted query được bảo vệ bằng mật khẩu, chúng ta sẽ gặp màn hình yêu cầu nhập mật khẩu:

Persisted Query đượ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 mong muốn.

Làm cho persisted query trở nên động thông qua tham số URL

Giá trị của mỗi biến có thể được đặt qua một tham số URL (với tên biến) khi thực thi persisted query. Nếu tùy chọn "Do URL params override variables?" được bật, thì tham số URL sẽ được ưu tiên. Ngược lại, giá trị được định nghĩa trong từ điển biến sẽ được ưu tiên (nếu có).

Ví dụ, trong queries này, số lượng kết quả được kiểm soát qua biến $limit, với giá trị mặc định là 3:

Sử dụng biến trong persisted query

Khi thực thi persisted query này, truyền ?limit=5 sẽ thực thi queries trả về 5 kết quả thay thế:

Ghi đè giá trị biến trong persisted query

Tạo một phân cấp persisted query

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

Vô hiệu hóa persisted query

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

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

Mô tả persisted query

Sử dụng trường "Excerpt" trong bảng cài đặt Tài liệu để đặt mô tả cho persisted query.

Tìm thêm thông tin trong guide Thêm mô tả vào API.

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

Một persisted query có trạng thái draft hoặc pending chỉ khả dụng cho người dùng biên tập schema.

Sau đó, chúng ta có thể tạo một persisted query, gán Cấu hình Schema, xuất bản nó ở trạng thái draft hoặc pending, và kiểm tra nó (ví dụ: xác minh rằng các quy tắc Kiểm soát Truy cập của nó là phù hợp).

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

Xem nguồn

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

Nguồn của persisted query


Cấu hình trong trình soạn thảo WordPress

Đây là các trường trong phần thân của trình soạn thảo:

TrườngMô tả
Tiêu đềTiêu đề của persisted query
Client GraphiQLTrình soạn thảo để viết và thực thi queries GraphQL:
  • Viết queries vào vùng văn bản
  • Khai báo biến trong queries, và khai báo giá trị của chúng ở phần nhập biến ở dưới cùng
  • Nhấp vào nút "Run" để thực thi queries
  • Nhận kết quả ở phần nhập bên phải
  • Nhấp vào "Docs" để xem thông tin schema
Explorer (chỉ hiển thị nếu module GraphiQL Explorer được bật) cho phép nhấp vào các trường, và chúng tự động được thêm vào queries
Cấu hình schemaTừ danh sách thả xuống, chọn cấu hình schema áp dụng cho persisted query, hoặc một trong các tùy chọn sau:
  • "Default": cấu hình schema là cấu hình được chọn trong Cài đặt của plugin
  • "None": persisted query sẽ không bị ràng buộc
  • "Inherit from parent": sử dụng cùng cấu hình schema với persisted query cha.
    Tùy chọn này khả dụng khi module API Hierarchy được bật và persisted query có queries cha (được chọn trong cài đặt Tài liệu)
Tùy chọnTùy chỉnh hành vi của persisted query:
  • Enabled?: Persisted query có được bật hay không.
    Hữu ích để vô hiệu hóa một persisted query khi nó là queries cha trong một phân cấp API
  • Do URL params override variables?: Cho phép tham số URL ghi đè giá trị cho các biến được định nghĩa trong client GraphiQL
  • Inherit query from ancestor(s)?: Sử dụng cùng queries với persisted query cha.
    Tùy chọn này khả dụng khi module API Hierarchy được bật và persisted query có queries cha (được chọn trong cài đặt Tài liệu)

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

TrườngMô tả
PermalinkEndpoint mà persisted query sẽ khả dụng
Danh mụcCó thể phân loại persisted query.
Ví dụ: mobile, app, v.v.
ExcerptCung cấp mô tả cho persisted query.
Trường này khả dụng khi module Excerpt as Description được bật
Thuộc tính trangChọn một persisted query cha.
Trường này khả dụng khi module API Hierarchy được bật