WordPress REST API là gì? Hướng dẫn sử dụng WordPress REST API

  • Thursday 06/02/2020

1. WordPress REST API là gì?

WordPress REST API cung cấp API Endpoint cho phép các lập trình viên tương tác với các trang web từ xa bằng cách gửi và nhận các đối tượng JSON (Ký hiệu đối tượng JavaScript). JSON là một định dạng dữ liệu tiêu chuẩn mở, nhẹ và dễ đọc. Khi bạn gửi nội dung đến hoặc đưa ra yêu cầu tới API, phản hồi sẽ được trả về ở định dạng JSON. Điều này cho phép các lập trình viên tạo, đọc và cập nhật nội dung WordPress từ xa hoặc từ các ứng dụng bên ngoài.

 

2. Các khái niệm của WordPress REST API

Để bắt đầu, bạn cần hiểu các khái niệm sau:

  • Routes/Endpoints: Có thể hiểu đây là đường dẫn nới bạn gửi request tới trên blog của bạn. Nó có đường dẫn là: http://your-blog.com/wp-json/
  • Requests: Yêu cầu gửi tới Endpoint
  • Responses: Dữ liệu trả về của Endpoin
  • Schema: Cấu trúc dữ liệu mà Responses trả về để bạn có thể xác định được dữ liệu cần tìm
  • Controller Classes: Trình điều khiển, nơi quản lý, điều hướng Endpoint, Request, Responses

 

3. Hướng dẫn sử dụng WordPress REST API

Bây giờ chúng ta sẽ cùng tìm hiểu cách quản lý WordPress thông qua WordPress REST API

Đường dẫn base là: http://your-blog.com/wp-json

Liệt kê danh sách bài viết (posts): curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts
Liệt kê danh sách trang (pages): curl -X GET -i http://your-blog.com/wp-json/wp/v2/pages
Lấy bài viết theo ID: curl -X GET -i http://your-blog.com/wp-json/wp/v2/posts/<ID>

Tạo mới một bài viết

Để tạo 1 bài viết mới trong WordPress, thông thường bạn phải login vào trang quản trị và viết bài. Tuy nhiên với Rest API bạn không thể login bằng phương pháp thông thường. Vì vậy bạn cần 1 plugin để thực hiện điều đó mới có thể tạo bài viết thông qua REST API. Đó là Basic Auth

Sau khi cài đặt xong chúng ta có thể tạo bài viết với xác thực đơn giản:

curl --user username:password http://your-blog.com/wp-json/

Hoặc tạo bài viết với phần header:

Authorization: Basic dGVzdHVzZXI6MTIzNDU2

Với: dGVzdHVzZXI6MTIzNDU2 là mã base64 của username:password

Update bài viết

curl -X POST --user username:password http://your-blog.com/wp-json/wp/v2/posts/<ID> -d '{"title":"My New Title"}'

Xóa bài viết

curl -X DELETE https://your-blog.com/wp-json/wp/v2/posts/<id>