RESTful API Cho Người Bắt Đầu

Lê Trung

Nếu bạn tìm thấy bài viết này của tôi trên Google thì tôi đoán rằng bạn đã từng ít nhất một vài lần nghe về thuật ngữ RESTful API và đang không hiểu chính xác thuật ngữ này là gì. Và nếu giống như tôi thì có thể bạn đã phải bỏ ra vài giờ đồng hồ để đọc các giải thích trên mạng mà cuối cùng vẫn không hiểu tường tận về thuậ ngữ này. Nếu bạn đang trong trường hợp này thì hãy bỏ ra 10 phút để đọc bài viết này. Tôi sẽ trình bày theo cách thực tế, ngắn gọn và dễ hiểu nhất có thể để bạn nắm vẵng được khái niệm RESTful API để áp dụng trong việc tạo ứng dụng REST API dựa trên những hiểu biết có được.

RESTful API

Đầu tiên chúng ta cần tìm hiểu về khái niệm resource.

Resource

Quản lý resource (tài nguyên) là một phần quan trọng và chiếm phần lớn trong việc phát triển website. Trong đó resource của các website khác nhau có thể sẽ khác nhau. Với các trang mạng xã hội như Facebook thì resource thường là danh sách người dùng (user hoặc account), danh sách các bài viết (post hoặc article), các ảnh được đăng (photo hoặc image), các trang fanpage (fanpage)... Đối với một trang chia sẻ ảnh như Instagram thì resource có thể là các ảnh được đăng (photo), danh sách người dùng (user)... Đối với các trang bán hàng thì resource có thể là danh sách sản phẩm (product), danh sách các người bán (seller), danh sách khách hàng (user hay customer)...

Việc quản lý resource của một website bao gồm 4 tác vụ chính:

  • Tạo mới một resource (create)
  • Lấy thông tin một resource (read)
  • Cập nhật một resource (update)
  • Xoá một resource (delete)

Có rất nhiều cách khác nhau để xây dựng một trang web thực hiện 4 tác vụ trên. Ví dụ với một trang blog chạy dưới tên miền là http://my-blog.xyz thì để xem nội dung một bài viết (post) với ID là 123 bạn có thể làm theo một trong các cách sau:

  • Gửi một request tới URL http://my-blog.xyz/posts?id=123 với HTTP method là GET
  • Gửi một request tới URL http://my-blog.xyz/posts/123 với HTTP method là GET
  • Gửi một request tới URL http://my-blog.xyz/action=view_post&id=123 với HTTP method là GET
  • Gửi một request tới URL http://my-blog.xyz/view_post&id=123 với HTTP method là GET
  • Gửi một request tới URL http://my-blog.xyz/posts?id=123 với HTTP method là POST
  • Gửi một request tới URL http://my-blog.xyz/posts/123 với HTTP method là POST
  • ...

Và sau một thời gian dài thì người ta đã thống nhất ra các tiêu chuẩn khác nhau để thực hiện việc quản lý resource. Các tiêu chuẩn này (hay còn được gọi là Web API hoặc HTTP API) quy định một cách thống nhất việc quản lý các resource của web. Và RESTful là một trong các web API được sử dụng phổ biến ngày nay.

RESTful API Là Gì

RESTful API là một tiêu chuẩn dùng trong việc thết kế các thiết kế API cho các ứng dụng web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến nhất ngày nay.

Trọng tâm của REST quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE...) và cách định dạng các URL cho ứng dụng web để quản các resource. Ví dụ với một trang blog để quản lý các bài viết chúng ta có các URL đi với HTTP method như sau:

  • URL tạo bài viết: http://my-blog.xyz/posts. Tương ứng với HTTP method là POST
  • URL đọc bài viết với ID là 123: http://my-blog.xyz/posts/123. Tương ứng với HTTP method là GET
  • URL cập nhật bài viết với ID là 123: http://my-blog.xyz/posts/123. Tương ứng với HTTP method là PUT
  • URL xoá bài viết với ID là 123: http://my-blog.xyz/posts/123. Tương ứng với HTTP method là DELETE

Với các ứng dụng web được thiết kế sử dụng RESTful, lập trình viên có thể dễ dàng biết được URL và HTTP method để quản lý một resource. Bạn cũng cần lưu ý bản thân RESTful không quy định logic code ứng dụng và RESTful cũng không giới hạn bởi ngôn ngữ lập trình ứng dụng. Bất kỳ ngôn ngữ lập trình (hoặc framework) nào cũng có thể áp dụng RESTful trong việc thiết kế API cho ứng dụng web.

REST và REST(ful)

Một vấn đề mà nhiều bạn mới tìm hiểu về RESTful cũng thường cảm thấy bối rối đó là RESTRESTful khác nhau như thế nào. REST là viết tắt của cụm từ Representational State Transfer và các ứng dụng sử dụng kiểu thiết kế REST thì được gọi là RESTful (-ful là tiếp vị ngữ giống như beautybeautiful). Tất nhiên bạn cũng có thể sử dụng thuật ngữ REST thay cho RESTful và ngược lại.

11 Phản Hồi

Hằng Thanh

Mình không có kiến thức về code nên lù mù trong lĩnh vực này.
Mình muốn hỏi là có thể cấp quyền cho từng cá nhân để có thể xem được API của mình theo 1 mã số được định sẵn không vậy

Hà Anh 22 April 2018

Có nhé bạn tuy nhiên thì bạn cần thêm bước authentication và authorization. Ban có thể đọc bài viết này về OpenID và OAuth

Thêm bình luận
Huỷ
Nguoi Com

Bài viết rất hay nhưng anh cho em hỏi thêm là : Có thể coi những HTTP method (GET , POST , DELETE , PUT ..) như là các API không ạ ?

Thêm bình luận
Huỷ
Nguoi Com

Bác cho em hỏi bác viết rằng : Và RESTful là một trong các web API được sử dụng phổ biến ngày nay ??
Vậy có thể coi GET , POST , PUT , DELETE chính là 1 trong các webAPI đấy không nhỉ ? Em cảm ơn các vì bài viết.

Nguyễn Duy 01 July 2019

Đấy là các phương thức sử dụng trong API

Thêm bình luận
Huỷ

Thêm Phản Hồi

Bài Viết Liên Quan