Restful API là gì? Những lưu ý về Restful API và cách tự build API

Trong giới lập trình, nguyên lý REST và cấu trúc dữ liệu RESTful là những thuật ngữ đã vô cùng quen thuộc, song vẫn có nhiều người hay nhầm lẫn và chưa hiểu rõ về chúng. Vậy Restful API là gì? Những lưu ý về Restful API và cách tự build API

Restful API là gì? Những lưu ý về Restful API và cách tự build API

Trong bài viết này, chúng ta sẽ cùng nhau làm rõ khái niệm REST API cũng như giải thích một số phương thức phát triển RESTful ở góc nhìn toàn cảnh nhất.

Restful API là gì?

REST là viết tắt của Representational State Transfer, là một loạt hướng dẫn và dạng cấu trúc dùng cho việc chuyển đổi dữ liệu. Thông thường, REST hay được dùng cho ứng dụng web, nhưng cũng có thể làm việc được với dữ liệu phần mềm.

API là viết tắt của Application Programming Interface, một phương thức kết nối với các thư viện và ứng dụng khác. Windows có nhiều API, và Twitter cũng có web API, tuy chúng thực hiện các chức năng khác nhau, với mục tiêu khác nhau.

Restful API là gì?

Nhìn chung, RESTful API là những API đi theo cấu trúc REST, là một ứng dụng chuyển đổi cấu trúc dữ liệu có các phương thức để kết nối với các thư viện và ứng dụng khác. REST API không được xem là một công nghệ, nó là một giải pháp để tạo ra các ứng dụng web services thay thế cho các kiểu khác như SOAP, WSDL (Web Service Definition Language),…

Cấu trúc REST là gì?

Khi nhắc đến cấu trúc REST, người ta thường nghĩ ngay đến những quy luật bất biến như :

  • Sự nhất quán trong cả API

  • Tồn tại không trạng thái (ví dụ, không có server-side session)

  • Sử dụng HTTP status code khi cần thiết

  • Sử dụng URL endpoint với logical hierarchy

  • Versioning trong URL chứ không phải trong HTTP header

REST là một phương thức rất được ưa chuộng cho dữ liệu HTTP bởi tính nhỏ gọn. Không chỉ vậy, ngày nay, REST dần trở nên phổ biến trên web, và được xem là lựa chọn “số một” cho phát triển API.

Các ưu điểm của REST

  • Giúp cho API trở nên rõ ràng hơn.

  • REST URL đại diện cho resource chứ không phải là hành động.

  • Dữ liệu được trả về với nhiều định dạng khác nhau như:  xml, html, rss, json,…

  • Code đơn giản và ngắn gọn.

  • REST chú trọng vào tài nguyên hệ thống.

Ngày nay, REST API là sự lựa chọn của nhiều trang web để kết nối dữ liệu, mà điển hình phải kể đến chính là Facebook. Facebook cũng cung cấp các REST API giúp các ứng dụng bên ngoài có thể kết nối đến dữ liệu của họ.

Những chú ý về RESTful API

Người dùng API là lập trình viên web có thể build một script kết nối đến một external API server, rồi dữ liệu cần thiết sẽ chuyển sang HTTP. Khi đó, lập trình viên có thể hiển thị dữ liệu lên website mà không cần đến truy cập cá nhân vào external server.

Những chú ý về RESTful API

Có bốn lệnh dùng để truy cập RESTful  API mà chúng ta cần phải nắm rõ chính là:

  • GET để truy vấn object

  • POST để tạo object mới

  • PUT để sửa đổi hoặc thay thế một object

  • DELETE để loại bỏ một object

Nếu những phương thức trên không được API thông qua thì sẽ không thể thành công, chúng cần phải được API call thông qua để gửi chỉ thị cho server phải làm gì.

Đại đa số web API chỉ cho phép GET request lấy dữ liệu khỏi một external server. Authentication không bắt buộc, nhưng nên có Authentication khi ta cho phép các lệnh khá “nguy hiểm” như PUT hay DELETE.Tuy nhiên, rất ít thấy RESTful API nào cho phép các lệnh này.

Truy cập API Resources

Cấu trúc URL rất quan trọng, chính vì thế, nó chỉ nên dùng cho API request. Nói một cách chuyên ngành thì Public API thường truy cập được từ địa chỉ website trực tiếp.

Một số URL có thể bao gồm đường dẫn tiền tố như /v2/ cho phiên bản 2 cập nhật từ API trước đó; hay thấy ở những lập trình viên muốn giữ 1.x API, nhưng vẫn muốn cung cấp cấu trúc mới nhất.

Nên nhớ, return data ở endpoint sẽ thay đổi mạnh mẽ dựa vào phương thức HTTP. Ví dụ, GET trả nội dung, còn POST tạo nội dung mới. Request có thể chỉ đến cùng một endpoint, nhưng kết quả có thể rất khác.

Cách tự build API

Nhiều người nghĩ rằng quá trình xây dựng một API riêng chắc chắn rất phức tạp, song thực chất nó lại đơn giản và dễ dàng hơn nhiều người nghĩ khá nhiều.

Mỗi API phải kết nối đến server để trả dữ liệu, chính vì thế, bạn không những phải viết code để làm điều đó, mà còn phải format return data nữa. Một số yêu cầu khác có thể gồm authentication và rate limiting.

Cách tự build API

Dưới đây là một số nguyên lý cơ bản của cấu trúc API.

  • Build Endpoints:

    • Build Endpoint là một phần không thể thiếu trong quá trình phát triển API. Ví dụ một cách dễ hiểu chính là khi  tạo tài nguyên bạn sẽ muốn dùng danh từ đấy, dừng dùng động từ, cũng tương đương với việc dữ liệu API phải trả kết quả là người, nơi chốn, hoặc “thứ” gì đó. Thông thường, bạn sẽ nhận một “thứ” với thuộc tính cụ thể (ví dụ như tweet và metadata).

    • Tên danh từ rất khó lọc nhưng lại là một phần cực kỳ quan trọng khi phát triển API, chính vì thế, hãy cố gắng càng đơn giản càng tốt.

    • Thông thường, dùng danh từ số ít sẽ dễ nhìn hơn, đặc biệt khi chỉ trả một tài nguyên. Ví dụ như khi bạn đang tạo API Twitter, bạn nên có object group trước (như: tweet), rồi object item sau (như: tweet ID): $ /tweet/15032934882934

  • Đặt Return Type

    • Return Type Data là một vấn đề vô cùng quan trọng trong quá trình phát triển API. Đa số người dùng web trông chờ nội dung JSON bởi JSON chính là API return type nền tảng cho lập trình web, vậy đây có lẽ là lựa chọn tốt nhất bên cạnh XML.

Giới thiệu về WordPress REST API

Bên cạnh Facebook, REST API cũng đã được tích hợp sẵn trong WordPress để giúp website của bạn không chỉ là một website thông thường mà còn là một web services có thể ban phát dữ liệu sang các nền tảng khác. Lúc này, người dùng có thể lấy dữ liệu hoặc cập nhật dữ liệu từ các ứng dụng khác mà không cần phải kết nối trực tiếp đến dữ liệu của website. Với REST API WordPress, chúng ta còn có thể tạo ra các ứng dụng android đọc báo sử dụng dữ liệu Json của REST API, các ứng dụng như winform để quản lý,…

Tuy nhiên, REST API mặc định của WordPress chỉ có khả năng tác động dữ liệu đến các thành phần mặc định như post, page, taxonomy, comment, user, settings,… mà không thể tác động đến các dữ liệu của plugin khác. Ví dụ Woocommerce, tuy nhiên nếu bạn sử dụng các plugin như Woocommerce thì nó cũng sẽ cung cấp cho bạn các REST API để sử dụng.

Trên đây là một số thông tin cơ bản về RESTful API cũng như cách sử dụng, những lưu ý và ứng dụng của nó trong cuộc sống. Hy vọng với những thông tin trên, bạn có thể biết cách sử dụng nó để mở rộng trên nhiều nền tảng khác nhau.