API là gì? REST là gì? Chúng có vai trò như thế nào?

13:46 02/11/2023

API là gì? REST là gì? Chúng có vai trò như thế nào? Hãy cùng tìm kiếm câu trả lời trong bài viết dưới đây nhé!

  • API là gì?

API viết tắt của từ Application Programming Interface (giao diện lập trình ứng dụng) là cách mà 02 máy tính nói chuyện với nhau. Tiêu chuẩn API phổ biến được sử dụng bởi hầu hết các thiết bị di động, ứng dụng web để “nói chuyện” với các server (máy chủ) được gọi là REST.

  • REST là gì?

REST viết tắt của Representational State Transfer.

REST không phải là một đặc tả. Nó là một tập hợp các quy tắc trở thành tiêu chuẩn chung cho xây dựng Web API từ những năm 2000. Một API theo tiêu chuẩn của REST được gọi là RESTful API. Một số các ví dụ điển hình như: Twilio, Stripe, Google Maps.

 

  • Cơ bản về REST

Một RESTful API tổ chức tài nguyên theo một tập các URIs (Uniform Resource Identifiers) duy nhất.

URIs phân biệt các kiểu tài nguyên khác nhau trên server. Các tài nguyên nên được nhóm lại theo tên (là danh từ chứ không phải động từ). Một API để lấy toàn bộ các sản phẩm (product) thì nên là /products chứ không phải là /getAllProducts.

Một client (máy khách) tương tác với nguồn tài nguyên bằng cách tạo ra một request (yêu cầu) đến đầu cuối (server) thông qua giao thức HTTP. Request  có một định dạng cụ thể như bên dưới.

  • POST request có nghĩa là chúng muốn tạo mới tài nguyên
  • GET request có nghĩa là chúng ta muốn đọc dữ liệu về những tài nguyên sẵn có
  • PUT request có nghĩa là chúng ta muốn cập nhật dữ liệu hiện có
  • DELETE request có nghĩa là chúng ta muốn xóa tài nguyên

Trong phần thân của những request này, có thể chứa các tùy chọn HTTP request: một lượng dữ liệu tùy biến thường ở dạng JSON. Server nhận request và xử lý nó, định dạng kết quả trong một response (phản hồi).

Trong dòng đầu tiên của response chứa mã trạng thái HTTP (HTTP status code) để nói cho client biết điều gì đã xảy ra với request.

Một RESTful API được triển khai tốt sẽ trả về mã trạng thái phù hợp.

Mã 200: có nghĩa request đã được thực hiện thành công

Mã 400: có nghĩa có gì đã sai với request

Mã 500: có nghĩa có gì đó không ổn ở phía server

Một client được thiết kế tốt có thể lựa chọn để thử lại một request bị lỗi với mã lỗi 500.

  • Stateless

Triển khai REST cần phải stateless (“không quốc tịch”). Có nghĩa là 02 bên (client và server) không cần phải lưu trữ bất kì thông tin nào của nhau, và mỗi request và response là độc lập với những request, response khác.

  • Xử lý đối với dữ liệu trả về lớn

Nếu một API đầu cuối trả về một lượng cực lớn dữ liệu, sử dụng phân trang. Mô hình thường sử dụng khi phân trang đó là sử dụng “limit” và “offset” như tham số đầu vào.

  • Phiên bản của một API

Việc thiết lập phiên bản cho API rất quan trọng. Việc này sẽ cho phép việc triển khai có thể tương thích ngược, do đó nếu bạn giới thiệu một sự thay đổi rất lớn từ phiên bản này đến phiên bản khác thì những người sử dụng API của bạn có thể có đủ thời gian để thay đổi sang phiên bản mới.

(nguồn tham khảo: System Design Interview by Alex Xu & Sahn Lam)

Giảng viên: Lê Thị Anh Đào
Bộ môn Công nghệ Thông tin
Trường Cao đẳng FPT polytechnic cơ sở Đà Nẵng

Cùng chuyên mục

Đăng Kí học Fpoly 2023