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

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:

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 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":

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):

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.

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.

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:

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:

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ũng có thể được mở khi chỉnh sửa Custom Endpoint, trong bảng điều khiển bên "Custom Endpoint Overview":

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 đó:

Để 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 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":

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 đó:

Để 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):

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ập | Mô tả |
|---|---|
| Title | Tiêu đề của custom endpoint |
| Schema configuration | Từ 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:
|
| Options | Tùy chỉnh hành vi của custom endpoint:
|
Đây là các trường nhập liệu trong cài đặt Document:
| Trường nhập | Mô tả |
|---|---|
| Permalink | Endpoint mà custom endpoint sẽ khả dụng tại đó |
| Categories | Có thể phân loại custom endpoint. Ví dụ: mobile, app, v.v. |
| Excerpt | Cung 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 attributes | Chọn một custom endpoint cha. Trường nhập này khả dụng khi module "API Hierarchy" được bật |