# Bài hướng dẫn WordPress REST API

## Bài hướng dẫn WordPress REST API

Tháng Một 28th, 2018[Hai G.](https://www.hostinger.vn/huong-dan/author/hghaigiang/)11 Phút Đọc![WordPress REST API](https://www.hostinger.vn/huong-dan/wp-content/uploads/sites/10/2018/01/wordpress-rest-api.jpg)

Contents

* [Giới thiệu WordPress REST API](https://www.hostinger.vn/huong-dan/bai-huong-dan-wordpress-rest-api/#Gioi-thieu-WordPress-REST-API)
* [Cách hoạt động của WordPress Rest API](https://www.hostinger.vn/huong-dan/bai-huong-dan-wordpress-rest-api/#Cach-hoat-dong-cua-WordPress-Rest-API)
* [Vì sao WordPress REST API có ảnh hưởng tới lập trình viên](https://www.hostinger.vn/huong-dan/bai-huong-dan-wordpress-rest-api/#Vi-sao-WordPress-REST-API-co-anh-huong-toi-lap-trinh-vien)
* [5 Bước để bắt đầu với WordPress REST API](https://www.hostinger.vn/huong-dan/bai-huong-dan-wordpress-rest-api/#5-Buoc-de-bat-dau-voi-WordPress-REST-API)
* [Lời kết](https://www.hostinger.vn/huong-dan/bai-huong-dan-wordpress-rest-api/#Loi-ket)

Gần như tất cả những dân chuyên WordPress đều đã nghe tới [REST API,](http://v2.wp-api.org/)nhờ vào [việc thêm nó vào bản gốc](https://make.wordpress.org/core/2015/10/28/rest-api-welcome-the-infrastructure-to-core/)năm 2015. Tuy nhiên, hầu hết các trường hợp chỉ những lập trình viên chuyên nghiệp mới nghiên cứu sâu về tính năng nay mạnh mẽ này.

WordPress Rest API bao gồm tất cả những API có thể được thích hợp vào themes, ứng dụng di động và hơn thế nữa. Nói cách khác, nó giúp lập trình viên tách biệt front end khỏi việc quản lý dữ liệu, giúp ứng dụng tương tác với WordPress. Học cách sử dụng công cụ này là mở ra cách cửa vô tận khả năng để mở rộng WordPress website của bạn.

Trong bài hướng dẫn này, chúng tôi sẽ giới thiệuc ho bạn biết về dự án WordPress Rest API, giải thích vì sao nó là một ý tưởng lớn, và chỉ vài cách ứng dụng. Hãy bắt đầu nhanh thôi nào!

### Giới thiệu WordPress REST API

![WP REST API project homepage](https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2017/09/wp-rest-api.png)

WordPress Representational State Transfer (REST) API dự án là [Bước tiến của WordPress](http://v2.wp-api.org/#about-the-wordpress-rest-api) trong việc trở thành một nền tảng ứng dụng chính thức.  Sự tồn tại của REST API trong lõi WordPress là minh chứng cho việc này.

Dự án được upload đầu tiên lên [GitHub for development](https://github.com/WP-API/WP-API/graphs/contributors) tháng Sáu 2013 bởi [Ryan McCue](https://rmccue.io/) và [Rachel Baker](http://rachelbaker.me/). Plugin độc lập REST API được tích hợp vào WordPress core [tháng 9 năm 2015](https://make.wordpress.org/core/2015/10/28/rest-api-welcome-the-infrastructure-to-core/), sau khi nhận được nhiều sự ủng hộ từ cộng đồng và thu hút hơn 100 người đóng góp vào việc hoàn thiện khả năng cho nó.

Từ khi ra mắt trong WordPress core, REST API đã có rất nhiều người dùng. Đây là cách để nâng cấp dự án của bạn, được truyền cảm hứng bởi những trường hợp cụ thể trên thế giới như sau:

1. [Event Espresso](https://eventespresso.com/2015/07/event-espresso-4-rest-api-add-on-available/) sử dụng REST API để cung cấp cho lập trình viên khả năng truy cập vào hạ tầng nội bộ, khiến cho việc phát triển app dựa trên dịch vụ của họ dễ dàng hơn
2. [Simmer](https://simmerwp.com/) giúp lập trình viên truy cập vào API để mở rộng tính năng hóa đơn thành một ứng dụng chính thức hoặc tùy chỉnh themes.
3. [JoinIn](https://www.joininuk.org/widget/) tăng sức mạnh cho  widget ’embeddable’ bằng REST API, khiến nó phổ biến bởi những luồng dữ liệu thích hợp bất kỳ khi nào nó hiển thị.

Đây chỉ là bề nổi của tảng băng mà những ý tưởng sáng tạo hơn có thể dùng với REST API. Tuy nhiên hãy tìm hiểu thêm cách REST API hoạt động.

### Cách hoạt động của WordPress Rest API 

Nói ngắn gọn, REST API hoạt động bằng cách xử lý dữ liệu từ một nơi tới nơi khác mà không truy cập trực tiếp vào database hoặc giao diện người dùng. Có nhiều loại Application Programming Interfaces (APIs), nhưng REST nổi bật vì là [một chuẩn hiện đại](https://en.wikipedia.org/wiki/Application_programming_interface#Web_APIs).

REST APIs được đưa ra ở Hyper Text Transfer Protocol (HTTP), sử dụng cấu trúc JavaScript Object Notation (JSON). Nhưng kỹ thuật này cho phép API sử dụng địa chỉ web duy nhất để đưa dữ liệu thực thi như là [JavaScript objects](https://www.w3schools.com/js/js_objects.asp).

Nếu bạn chưa bao giờ làm việc với JavaScripts hoặc object notation trước đây, có thể bắt đầu bằng việc học [cơ bản về JSON](https://www.w3schools.com/js/js_json_intro.asp). Khi đã quyen với ý tưởng của REST API, hãy tìm hiểu về những ảnh hưởng lớn nó giành cho lâp trình viên WordPress.

### Vì sao WordPress REST API có ảnh hưởng tới lập trình viên 

![WordPress REST API Handbook](https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2017/09/rest-api-handbook.png)

WordPress REST API là một kết nối mở từ _bất kỳ_ WordPress nào tới bất kỳ ứng dụng nào trên web server hoặc hệ điều hành nào. Có nghĩa là bạn chỉ bị giới hạn bởi khả năng tưởng tượng của mình trong việc việc tận dụng WordPress. Bạn có thể dựng bất kỳ ứng dụng nào, lập trình bất kỳ nền tảng hoặc ngôn ngữ nào, sử dụng WordPress để xử lý dữ liệu qua REST API. Ứng dụng thật tế cực kỳ lớn, vì WordPress có cộng đồng sử dụng rất đông và mở.

Hơn nữa, vì REST API dựa trên JavaScript, việc tập trùng vào API đánh dấu bước chuyển về ngôn ngữ lập trình nào quan trọng để học. Bạn có thể JavaScript nền server là một PHP mới. Việc này có thể thấy được trong phần mềm mới của WordPress.com, [Calypso](https://developer.wordpress.com/calypso/), vận hành hoàn toàn trên JavaScript và REST API.

Bằng cách chuẩn hóa ứng dụng (gồm WordPress’ core) tương tác với dữ liệu WordPress, quá trình phát triển WordPress sẽ dễ dàng hơn và mượt mà hơn. Còn nữa, nó sẽ dễ tương thích với nền tảng thứ 3 hơn.

Tuy nhiên, quá trình chuyển đổi có thể hơi khó khăn, đó là lý do vì sao rất quan trọng để học cách sử dụng công nghệ này bây giờ. Đã đến lúc học bước đầu sử dụng REST API để  áp dụng cho dự án của bạn rồi đấy!

### 5 Bước để bắt đầu với WordPress REST API

Như đã nói ở trên REST API có thể được dùng với bất kỳ ứng dụng hay ngôn ngữ lập trình nào để gọi một HTTP endpoint (gần như là tất cả). Vì vậy, chúng ta sẽ tập trung sử dụng command line để thực thi REST API requests, vì nó là cách dễ nhất và ít lỗi lập trình nhất mà có thể xảy ra trong quá trình học.

Để làm vậy, bạn sẽ cần mở Command Line Interface (CLI) trên máy tính của bạn – _Terminal_ trên macOS hay Linux, _và Command Prompt_ trên Windows. CLI cho phép bạn trực tiếp tương tác với REST API, mà không phải viết thêm scripts để yêu và xử lý thông tin. Bất kỳ request nào được thực hiện trên CLI có thể được scripts thành PHP, JavaScript, và ngôn ngữ khác nhưng mỗi phương thức sẽ khác nhau. Ra lệnh trong CLI là đơn giản và rõ ràng. Chỉ cần gõ command bạn cần vàn hấn ENTER trên bàn phím.

Chúng tôi cũng khuyên tạo một site demo trên máy tính, thay vì hoàn tất bài hướng dẫn này trên site chạy thật. Cuối cùng, bạn chỉ cần tạo site WordPress bản 4.4 trở lên là được. Khi đã sẳn sàng, hãy bắt đầu học thôi!

#### Bước 1: Làm quen với những khái niệm chính của REST API

Trước khi bắt đầu, hãy làm quen với [tất cả REST APIs trước khi tiếp tục](https://developer.wordpress.org/rest-api/#key-concepts). Có 5 khái niệm chính và thuật ngữ bạn cần nắm rõ. Hãy xem qua chúng:

1. **‘Routes’ và ‘Endpoints’.** Đây là phần quan trọng nhất của REST API cần. Route giúp bạn di chuyển qua endpoints, khi mà một phương thức HTTP nhất định (ví dụ: một dataset tĩnh hoặc một action) kết nối tới một route nhất định. Ví dụ, `/wp-json/` là route được thiết kế như là một endpoint để cho chúng ta thấy các route khả dụng.
2. **Requests.** Được tạo ra để kích hoạt đúng endpoints và chuyển dữ liệu đi.
3. **Responses.** Cung cấp dữ liệu được yêu cầu hoặc trả về lỗi để bạn biết có gì đó không đúng.
4. **Schemas.** Những mẫu responses, để bạn luôn biết chính xác nơi nào cần tìm cho ra đúng dữ liệu.
5. **Controller classes.** Trong điều kiện của layman, họ cho phép dựng route và endpoint riêng. Bây giờ, bạn không cần phải nghĩ tới những điều này, mặc dù có thể chúng sẽ hữu dụng sau này.

Khi bạn đã hiểu 5 khái niệm trên, bạn có thể bắt đầu đào sâu vào REST API, bắt đầu với endpoints.

#### Bước 2: Tìm hiểu về những Endpoints REST API hữu dụng nhất

WordPress REST API cho bạn một [sách mẫu](https://developer.wordpress.org/rest-api/reference/) gồm tất cả những endpoints hữu dụng. Trước tiên, bạn cần biết cấu trúc làm thế nào một HTTP gọi tới một REST API. Cơ bản mỗi lần WordPress REST API gọi như sau, (thay thế yourdomain.com thành tên miền của bạn):

```
http://yourdomain.com/wp-json/
```

Bạn có thể thử kết nối bằng cách thực thi lệnh _curl_ trong CLI bằng URL của riêng bạn:

```
curl -X OPTIONS -i http://yourdomain.com/wp-json/
```

Bạn sẽ được chào bằng một thông báo _HTTP thành công._ Sau đó bạn có thể tiếp tục và lặp lại câu lệnh này với các endpoints chính. Lần này, chúng ta sẽ dùng _Get_ của _curl._

Để lấy danh sách JSON của một post WordPress, bạn có thể dùng  lệnh sau:

```
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts
```

Ngoài ra, hãy thử kiểm tra những trang đang tồn tại của WordPress:

```
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/pages
```

Bạn có thể nghiệm với mỗi [endpoints sau (và nhiều hơn nữa!)](https://developer.wordpress.org/rest-api/reference/#rest-api-developer-endpoint-reference)trong CLI để xem các kết quả trả về mỗi lần gọi.

#### Bước 3: Học cách chứng thực API cơ bản của REST API

Đã đến lúc tìm hiểu về cách xác thực. Một số actions và data trong REST API là public, nhưng những phần khác cần đăng nhập dưới dạng administrator. Tuy nhiên, với REST API, không có cách để đăng nhập. Ngoài trừ việc bạn chứng thực bạn trước khi gọi mỗi câu lệnh cần quyền admin, như là hiển thị những nội dung chưa public hoặc cập nhật bài post.

Bằng cách cài đặt plugin WordPress REST API [Basic Auth](https://github.com/WP-API/Basic-Auth).Đây là plugin thí nghiệm để học về REST API nhanh chóng, nó không được dùng cho những site đã vận hành.  Tuy nhiên, quá trình cài đặt cũng như các plugin khác.

Khi Basic Auth đã được cài đặt, bạn có thể chứng thực qua CLI với cờ _user._ Đây là ví dụ làm sao để áp dụng chứng thực cho _user,_ bằng cách dùng _curl_ để hiển thị các bài viết chưa được xuất bản.:

```
curl -X GET --user username:password -i http://yourdomain.com/wp-json/wp/v2/posts?status=draft
```

Chứng thực sẽ được đòi hỏi mỗi lần bạn muốn hiển thị những thông tin không được công khai. Khi bạn đã biết về việc xác thực, bạn có thể tìm hiểu thêm những lựa chọn khác được khuyên dùng trong [bởi the REST API documentation](https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/) cho trang chính của bạn.

#### Bước 4: Chọn bài viết đầu tiên của bạn với REST API

Khi bạn đã hiểu làm thế nào để tạo một call cơ bản tới REST API sử dụng _curl,_ hãy thử chọn một bài viết. Đầu tiên, liệt kê tất cả bài viết như là bạn đã làm trước đây:

```
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts
```

&#x20;Tiếp theo, tìm ID của bài post bạn muốn cập nhật. Bạn sẽ thêm ID này vào cuối query để chọn _chỉ_ bài viết đó:

```
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts/<ID>
```

&#x20;Bạn có thể sử dụng nó cho bất kỳ ID nào cho bất kỳ endpoint REST API nào, kể cả bạn muốn hiện một vài viết, trang hoặc taxonomy.

#### Bước 5: Cập nhật bài viết WordPress với REST API

Cuối cùng, hãy thử cập nhật bài viết. Thay vì sử dụng lệnh _OPTION_ và GET, lần này chúng ta sẽ dùng _POST_ để thay đổi. _GET_ được dùng để đọc dữ liệu, _POST_ được dùng để gửi nó đi.

Hãy thay đổi tiêu đề bài viết., bằng cách gửi yêu cầu _POST_ với chứng thực. Thay đổi sẽ được chia sẽ bằng cách sử dụng cờ _d_ tại cuối mỗi lệnh. Bạn sẽ chuyển một đối tượng JavaScript với biết _title_ thành một giá trị khác, như là _My New Title,_ như lệnh bên dưới:

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

&#x20;Hãy chắc bạn đã thay thế username password, post ID và tiêu đề với đúng thông tin của bạn. Bạn có thể chọn lại mỗi bài viết để xác thực thay đổi.

```
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts/<ID>
```

&#x20;Chúc mừng! Bạn đã thay đổi thành công lần đầu tiên với quyền quản trị bằng cách sử dụng WordPress REST API. Tất nhiên, bài hướng dẫn cơ bản này khó có thể nói lên REST API có thể làm gì, nhưng điểm chính là nắm cơ bản vì mọi sự mở rộng đều có thể!

### Lời kết 

[WordPress REST API](http://v2.wp-api.org/) là một phần mạnh mẽ của lõi WordPress, một số lập trình viên đã tìm hiểu kỹ về khả năng của nó. Kết quả nếu bạn bắt đầu tìm hiểu sớm và học cách làm việc với nó có thể khiến bạn trở thành một lập trình có nhiều lợi thế hơn, và giúp bạn tạo những ứng dụng sử dụng WordPress làm framework.

Để tổng kết, đây là năm bước đầu tiên cần học để tương tác với WordPress REST API:

1. Làm quen khái niệm của REST API.
2. Tìm hiểu những REST API endpoints hữu dụng nhất.
3. Học cách cơ bản của chứng thực qua REST API .
4. Chọn bài post đầu tiên của WordPress REST API.
5. Cập nhật bài viết WordPress với REST API.

Bạn có điều gì muốn hỏi về WordPress REST API không? Hãy cho chúng tôi biết bằng cách để lại bình luận bên dưới!
