[HTTP API] Tài liệu tham khảo HTTP API developer.wordpress.org (ok)
https://developer.wordpress.org/plugins/http-api
GETting data from an API
Lấy dữ liệu được thực hiện cực kỳ đơn giản trong WordPress thông qua hàm wp_remote_get (). Hàm này nhận hai đối số sau:
Các giá trị mặc định sau được giả định, mặc dù chúng có thể được thay đổi thông qua tham số $ args:
Let’s use the URL to a GitHub user account and see what sort of information we can get
GET the body you always wanted
Just the body can be retrieved using wp_remote_retrieve_body()
. This function takes just one parameter, the response from any of the other wp_remote_X functions where retrieve is not the next value.
GET the response code
You may want to check the response code to ensure your retrieval was successful. This can be done via the wp_remote_retrieve_response_code()
function:
GET a specific header
If your desire is to retrieve a specific header, say last-modified, you can do so with wp_remote_retrieve_header()
. This function takes two parameters
To retrieve the last-modified header
GET using basic authentication
Các API được bảo mật hơn cung cấp một hoặc nhiều loại xác thực khác nhau. Một phương pháp xác thực phổ biến, mặc dù không bảo mật cao là Xác thực cơ bản HTTP. Nó có thể được sử dụng trong WordPress bằng cách chuyển ‘Authorization’ cho tham số thứ hai của hàm wp_remote_get (), cũng như các hàm phương thức HTTP khác.
POSTing data to an API
Các phương thức trợ giúp giống nhau (wp_remote_retrieve_body (), v.v.) có sẵn cho tất cả các lệnh gọi phương thức HTTP và được sử dụng theo cùng một kiểu.
Quá trình ĐĂNG dữ liệu được thực hiện bằng cách sử dụng hàm wp_remote_post () và nhận các tham số chính xác như wp_remote_get (). Cần lưu ý ở đây rằng bạn bắt buộc phải chuyển TẤT CẢ các phần tử trong mảng cho tham số thứ hai. Codex cung cấp các giá trị mặc định được chấp nhận. Lúc này bạn chỉ cần quan tâm đến dữ liệu mình đang gửi nên các giá trị khác sẽ được mặc định.
Để gửi dữ liệu đến máy chủ, bạn sẽ cần phải xây dựng một mảng dữ liệu liên kết. Dữ liệu này sẽ được gán cho giá trị 'body'. Từ phía máy chủ của mọi thứ, giá trị sẽ xuất hiện trong biến $ _POST như bạn mong đợi. tức là if body => array ('myvar' => 5) trên máy chủ $ _POST ['myvar'] = 5.
Vì GitHub không cho phép ĐĂNG lên API được sử dụng trong ví dụ trước, ví dụ này sẽ giả vờ rằng nó có. Thông thường, nếu bạn muốn ĐĂNG dữ liệu lên một API, bạn sẽ cần liên hệ với những người duy trì API và nhận khóa API hoặc một số dạng mã xác thực khác. Điều này chỉ đơn giản chứng minh rằng ứng dụng của bạn được phép thao tác dữ liệu trên API giống như cách đăng nhập vào trang web như cách người dùng thực hiện với trang web.
Giả sử chúng tôi đang gửi một biểu mẫu liên hệ với các trường sau: tên, email, chủ đề, nhận xét. Để thiết lập phần thân, chúng ta làm như sau:
Now we need to set up the rest of the values that will be passed to the second parameter of wp_remote_post()
Then of course to make the call
Xem ví dụ đã hoàn thành ở đây để hiểu rõ wpremote_post https://app.gitbook.com/@wordpress-lionel/s/project/wp_remote_post-ok
HEADing off bandwidth usage
Việc kiểm tra trạng thái tài nguyên bằng HEAD trước khi truy xuất có thể khá quan trọng và đôi khi được yêu cầu bởi API. Trên các API có lưu lượng truy cập cao, GET thường bị giới hạn ở số lượng yêu cầu mỗi phút hoặc giờ. Thậm chí không cần thử yêu cầu GET trừ khi yêu cầu HEAD cho thấy dữ liệu trên API đã được cập nhật.
Như đã đề cập trước đây, HEAD chứa dữ liệu về việc dữ liệu đã được cập nhật hay chưa, dữ liệu có nên được lưu vào bộ nhớ cache hay không, khi nào hết hạn bản sao được lưu trong bộ nhớ cache và đôi khi giới hạn tốc độ đối với các yêu cầu đối với API.
Quay lại ví dụ GitHub, đây là một số tiêu đề cần lưu ý. Hầu hết các tiêu đề này là tiêu chuẩn, nhưng bạn phải luôn kiểm tra tài liệu API để đảm bảo bạn hiểu tiêu đề nào được đặt tên là gì và mục đích của chúng.
The following will check the HEAD value of my GitHub user account:
$response should look similar to
Tất cả các chức năng trợ giúp tương tự có thể được sử dụng trên chức năng này như với hai chức năng trước. Ngoại lệ ở đây là HEAD không bao giờ trả về một phần thân, vì vậy phần tử đó sẽ luôn trống.
Make any sort of request
Nếu bạn cần thực hiện một yêu cầu bằng phương thức HTTP không được hỗ trợ bởi bất kỳ chức năng nào ở trên, đừng lo lắng. Những người giỏi phát triển WordPress đã nghĩ đến điều đó và cung cấp wp_remote_request () một cách đáng yêu. Hàm này nhận hai tham số giống như wp_remote_get () và cho phép bạn chỉ định phương thức HTTP. Dữ liệu bạn cần chuyển là tùy thuộc vào phương pháp của bạn.
To send a DELETE method example you may have something similar to the following:
Introduction to caching
Bộ nhớ đệm là một phương pháp thực hành theo đó các đối tượng thường được sử dụng hoặc các đối tượng đòi hỏi thời gian đáng kể để xây dựng được lưu vào một kho lưu trữ đối tượng nhanh để truy xuất nhanh các yêu cầu sau này. Điều này ngăn chặn nhu cầu dành thời gian tìm nạp và xây dựng lại đối tượng. Bộ nhớ đệm là một chủ đề rộng lớn là một phần của tối ưu hóa trang web và có thể đi vào toàn bộ một loạt các bài báo. Những gì sau đây chỉ là phần giới thiệu về bộ nhớ đệm và một cách đơn giản nhưng hiệu quả để nhanh chóng thiết lập bộ đệm cho các phản hồi API.
Tại sao bạn nên lưu các phản hồi API vào bộ nhớ cache? Chà, con voi lớn trong phòng là do các API bên ngoài làm chậm trang web của bạn. Nhiều chuyên gia tư vấn sẽ cho bạn biết việc khai thác các API bên ngoài sẽ cải thiện hiệu suất trang web của bạn bằng cách giảm số lượng kết nối và xử lý nó thực hiện, cũng như tốn kém băng thông, nhưng đôi khi điều này không đúng.
Đó là một hành động cân bằng tốt giữa tốc độ máy chủ của bạn có thể gửi dữ liệu và lượng thời gian cần thiết để máy chủ từ xa xử lý yêu cầu, xây dựng dữ liệu và gửi lại. Khía cạnh thứ hai là nhiều API có số lượng yêu cầu hạn chế trong một khoảng thời gian và có thể là giới hạn về số lượng kết nối của một ứng dụng cùng một lúc. Bộ nhớ đệm giúp giải quyết những tình huống khó xử này bằng cách đặt một bản sao dữ liệu trên máy chủ của bạn cho đến khi nó cần được làm mới.
When should you cache?
Câu trả lời nhanh chóng cho điều này là luôn luôn , nhưng một lần nữa có những lúc bạn không nên. Nếu bạn đang xử lý dữ liệu thời gian thực hoặc API nói cụ thể không lưu vào bộ nhớ cache trong tiêu đề, bạn có thể không muốn lưu vào bộ nhớ cache, nhưng đối với tất cả các trường hợp khác, bạn nên lưu vào bộ nhớ cache bất kỳ tài nguyên nào được truy xuất từ API.
WordPress Transients
WordPress Transient cung cấp một cách thuận tiện để lưu trữ và sử dụng các đối tượng được lưu trong bộ nhớ cache. Người chuyển hoạt động trong một khoảng thời gian nhất định hoặc cho đến khi bạn cần chúng hết hạn khi tài nguyên từ API đã được cập nhật. Sử dụng chức năng tạm thời trong WordPress có thể là hệ thống bộ nhớ đệm dễ sử dụng nhất mà bạn từng gặp. Chỉ có ba chức năng để thực hiện tất cả các công việc nặng nhọc cho bạn.
Cache an object ( Set a transient )
Caching an object is done with the set_transient()
function. This function takes the following three parameters:
Ví dụ về lưu vào bộ nhớ đệm phản hồi thông tin người dùng GitHub từ trên trong một giờ sẽ là
Get a cached object ( Get a transient )
Lấy một đối tượng được lưu trong bộ nhớ cache phức tạp hơn một chút so với việc thiết lập một đối tượng tạm thời. Bạn cần yêu cầu tạm thời, nhưng sau đó bạn cũng cần kiểm tra xem liệu tạm thời đó đã hết hạn chưa và có tìm nạp dữ liệu cập nhật hay không. Thông thường, lời gọi set_transient () được thực hiện bên trong lời gọi get_transient (). Dưới đây là một ví dụ về việc lấy dữ liệu tạm thời cho hồ sơ người dùng GitHub:
Delete a cached object (Delete a transient)
Xóa một đối tượng được lưu trong bộ nhớ cache là dễ nhất trong tất cả các hàm tạm thời, chỉ cần chuyển cho nó một tham số là tên của đối tượng tạm thời và bạn đã hoàn tất.
To remove the Github user info:
More information on transients can be found here.
Last updated
Was this helpful?