RESTful API

Hiện nguyên lý REST và cấu trúc dữ liệu RESTful được biết đến rất rộng rãi trong giới lập trình, nhưng vẫn có nhiều người hay nhầm lẫn. Bản thân REST không phải là một loại công nghệ, mà là phương thức tạo API với nguyên lý tổ chức nhất định. Những nguyên lý này nhằm hướng dẫn lập trình viên tạo môi trường xử lý API request được toàn diện hơn.

REST là viết tắt của Representational State Transfer. Giải thích đơn giản, REST 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, 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.

Nhìn chung, RESTful API là những API đi theo cấu trúc REST.

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

Thật khó giải thích sao cho cụ thể. Tuy nhiên, vẫn có một số quy luật bất biến, như:

  • Sự nhất quán trong cả API
  • Tồn tại không trang 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

Sẽ không có bất cứ hướng dẫn nào như W3C HTML5 spec, quá cụ thể đến mức dẫn đến nhầm lẫn, đặc biệt là các nhầm lẫn tai hại quanh thuật ngữ REST.

Hơn nữa, bạn không nhất thiết phải tuân theo những quy luật trên không sai một chữ (dù quả thật đó là những quy luật quan trọng của RESTful API hiện đại).

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

Theo như Vinay Sahni đã nói, “API chính là UI của lập trình viên.” Mọi thứ phải dể dùng, với trải nghiệm tốt. Và đây chính là mục tiêu RESTful APIs hướng đến.

Cần chú ý với RESTful APIs

Những tip dưới đây dành riêng cho API trong môi trường ứng dụng web. Đồng nghĩa rằng HTTP là bắt buộc, và dữ liệu API sẽ thường được host trên external server. Hãy xem thử RESTful API làm việc như thế nào bên phía người dùng 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. Lập trình viên khi đó 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ìn chung, có bốn lệnh dùng để truy cập RESTful API:

  • 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

Mỗi phương thức trê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 externer server. Authencation không bắt buộc, nhưng nên có khi ta cho phép các lệnh khá “nguy hiểm” như PUT hay DELETE.