[API] Global Parameters

https://developer.wordpress.org/rest-api/using-the-rest-api/global-parameters/

API bao gồm một số tham số toàn cục (còn được gọi là “tham số meta”) kiểm soát cách API xử lý yêu cầu / xử lý phản hồi. Chúng hoạt động ở một lớp trên chính tài nguyên thực tế và có sẵn trên tất cả các tài nguyên.

_fields

Tài nguyên REST như Bài đăng chứa một lượng lớn dữ liệu: thông tin cơ bản như nội dung, tiêu đề và ID tác giả, nhưng cũng có siêu dữ liệu và trường đã đăng ký, thông tin phương tiện và liên kết đến các tài nguyên khác. Ứng dụng của bạn có thể không cần tất cả thông tin này theo mọi yêu cầu.

Để hướng dẫn WordPress chỉ trả về một tập hợp con của các trường trong phản hồi, bạn có thể sử dụng tham số truy vấn _fields. Ví dụ: nếu bạn đang tạo chế độ xem lưu trữ và chỉ cần ID, tiêu đề, liên kết cố định, tác giả và đoạn trích cho một bộ sưu tập các bài đăng, bạn có thể hạn chế phản hồi chỉ đối với những thuộc tính với truy vấn trường này:

http://localhost/api/wp-json/wp/v2/posts?_fields=author,id

Ngoài ra, bạn có thể cung cấp cùng danh sách đó bằng cách sử dụng cú pháp mảng tham số truy vấn thay vì danh sách được phân tách bằng dấu phẩy:

Hoặc

http://localhost/api/wp-json/wp/v2/posts?_fields[]=author&_fields[]=id

Khi _fields được cung cấp thì WordPress sẽ bỏ qua các trường không cần thiết khi tạo đối tượng phản hồi của bạn, tránh tính toán nội bộ tốn kém tiềm năng hoặc các truy vấn cho dữ liệu bạn không cần. Điều này cũng có nghĩa là đối tượng JSON được trả về từ API REST sẽ nhỏ hơn, yêu cầu ít thời gian hơn để tải xuống và ít thời gian hơn để phân tích cú pháp trên thiết bị khách của bạn.

Hãy thiết kế cẩn thận các truy vấn của bạn để chỉ lấy các thuộc tính cần thiết từ mỗi tài nguyên nhằm giúp ứng dụng của bạn sử dụng nhanh hơn và chạy hiệu quả hơn.

Kể từ WordPress 5.3, tham số _fields hỗ trợ các thuộc tính lồng nhau. Điều này có thể hữu ích nếu bạn đã đăng ký nhiều khóa meta, cho phép bạn yêu cầu giá trị chỉ cho một trong các thuộc tính meta đã đăng ký:

?_fields=meta.one-of-many-keys

Chỉ giá trị meta có khóa một trong nhiều khóa mới được trả lại và những giá trị khác sẽ bị loại trừ.

Bạn cũng có thể yêu cầu các thuộc tính lồng nhau sâu cụ thể trong một đối tượng meta phức tạp:

Ví dụ: http://localhost/api/wp-json/wp/v2/posts?_fields=guid.rendered

http://localhost/api/wp-json/wp/v2/posts?_fields=guid.rendered

Hoặc http://localhost/api/wp-json/wp/v2/posts?_fields=guid.rendered,%20title.rendered

_embed

Hầu hết các tài nguyên bao gồm các liên kết đến các tài nguyên liên quan. Ví dụ: một bài đăng có thể liên kết đến bài đăng chính hoặc nhận xét về bài đăng. Để giảm số lượng yêu cầu HTTP cần thiết, khách hàng có thể muốn tìm nạp một tài nguyên cũng như các tài nguyên được liên kết. Tham số _embed cho máy chủ biết rằng phản hồi phải bao gồm các tài nguyên nhúng này.

Chế độ nhúng được bật nếu tham số _embed được chuyển vào chuỗi truy vấn (tham số GET). Tham số này không yêu cầu giá trị (tức là? _Embed là hợp lệ), tuy nhiên có thể được chuyển “1” làm giá trị nếu thư viện khách hàng yêu cầu.

Kể từ WordPress 5.4, các tài nguyên để nhúng có thể bị giới hạn bằng cách chuyển một danh sách các tên quan hệ liên kết đến tham số _embed. Ví dụ: / wp / v2 / posts? _Embed = author, wp: term sẽ chỉ nhúng tác giả của bài đăng và danh sách các cụm từ được liên kết với bài đăng.

Các tài nguyên trong chế độ nhúng sẽ chứa một khóa _embedded bổ sung bên cạnh khóa _links chứa các tài nguyên được liên kết. Chỉ các liên kết có tham số nhúng được đặt thành true mới được nhúng.

_method (or X-HTTP-Method-Override header)

Một số máy chủ và máy khách không thể xử lý chính xác một số phương thức HTTP mà API sử dụng. Ví dụ: tất cả các yêu cầu xóa trên tài nguyên đều sử dụng phương thức DELETE, nhưng một số máy khách không cung cấp khả năng gửi phương thức này.

Để đảm bảo khả năng tương thích với các máy chủ và máy khách này, API hỗ trợ ghi đè phương thức. Điều này có thể được chuyển qua tham số _method hoặc tiêu đề X-HTTP-Method-Override, với giá trị được đặt thành phương thức HTTP để sử dụng.

A POST to /wp-json/wp/v2/posts/42?_method=DELETE would be translated to a DELETE to the wp/v2/posts/42 route.

Similarly, the following POST request would become a DELETE:

POST /wp-json/wp/v2/posts/42 HTTP/1.1
Host: example.com
X-HTTP-Method-Override: DELETE

_envelope

Tương tự như _method, một số máy chủ, máy khách và proxy không hỗ trợ truy cập dữ liệu phản hồi đầy đủ. API hỗ trợ truyền tham số _envelope, tham số này sẽ gửi tất cả dữ liệu phản hồi trong nội dung, bao gồm tiêu đề và mã trạng thái.

Chế độ phong bì được bật nếu tham số _envelope được chuyển vào chuỗi truy vấn (tham số GET). Tham số này không yêu cầu giá trị (tức là? _Envelope hợp lệ), nhưng có thể được chuyển “1” làm giá trị nếu thư viện khách yêu cầu.

Các phản hồi được đóng gói bao gồm mã phản hồi HTTP 200 “giả mạo” mà không có tiêu đề bổ sung (ngoài Loại nội dung) sẽ đảm bảo phản hồi đi qua trung gian một cách chính xác.

For example, given the following response to a GET to wp/v2/users/me:

HTTP/1.1 302 Found
Location: http://example.com/wp-json/wp/v2/users/42
 
{
  "id": 42,
  ...
}

The equivalent enveloped response (with a GET to wp/v2/users/me?_envelope) would be:

HTTP/1.1 200 OK
 
{
  "status": 302,
  "headers": {
    "Location": "http://example.com/wp-json/wp/v2/users/42"
  },
  "body": {
    "id": 42
  }
}

_jsonp

API hỗ trợ nguyên bản các phản hồi JSONP để cho phép các yêu cầu miền chéo cho các trình duyệt và ứng dụng khách kế thừa. Tham số này nhận một hàm gọi lại JavaScript sẽ được thêm vào trước dữ liệu. Sau đó, URL này có thể được tải qua thẻ .

Hàm gọi lại có thể chứa bất kỳ chữ và số nào, _ (dấu gạch dưới) hoặc. (dấu chấm) ký tự. Các lệnh gọi lại chứa các ký tự không hợp lệ sẽ nhận được phản hồi lỗi HTTP 400 và lệnh gọi lại sẽ không được gọi.

<script>
function receiveData( data ) {
  // Do something with the data here.
  // For demonstration purposes, we'll simply log it.
  console.log( data );
}
</script>
<script src="https://example.com/wp-json/?_jsonp=receiveData"></script>

Last updated