07/09/2018, 10:32

RESTful Web Services Là Gì?

RESTful Web Services là một thuật ngữ được sử dụng rất nhiều trong những năm gần đây. Tuy nhiên không ít người cảm thấy khó hiểu về khái niệm này khi mà thậm chí có bạn nói đã Google hàng giờ mà vẫn ...không hiểu gì hết. Chính vì thế RESTful Web Services luôn trở thành nỗi ám ảnh cho các bạn lập ...

RESTful Web Services là một thuật ngữ được sử dụng rất nhiều trong những năm gần đây. Tuy nhiên không ít người cảm thấy khó hiểu về khái niệm này khi mà thậm chí có bạn nói đã Google hàng giờ mà vẫn ...không hiểu gì hết. Chính vì thế RESTful Web Services luôn trở thành nỗi ám ảnh cho các bạn lập trình viên trẻ khi phải đối mặt với các nhà tuyển dụng đặc biệt là khi nó được theo sau bởi một cùm từ cũng khó hiểu chẳng kém là Web Services phía sau nó.

Tin đặc biệt tốt là thực ra RESTful Web Services không khó hiểu và đáng sợ như khi bạn bị mấy tay tuyển dụng đặt câu hỏi trong buổi phỏng vấn để 'dìm hàng', 'dìm luôn lương' bạn. Ngay bây giờ mình sẽ giải thích một cách ngắn gọn đi vào thực tiễn bằng ví dụ luôn chứ không lý thuyết lơ tơ mơ như mấy trang khác để giúp các bạn hiểu RESTful là cái quái gì mà mấy anh trên mạng giải thích lằng nhằng khó hiểu thế.

Thế nên mình xin phép bắt đầu bằng 1 ví dụ và ném cái định nghĩa dài loằng ngoằng ở cuối bài nhoé :-)

Giả sử bạn cần tạo một trang blog cá nhân về học lập trình. Trên trang này có những bài viết (tiếng Anh nó gọi là article đấy). Các bài viết sẽ được tạo ra bởi một tác giả nào đó, sau đó tác giả này có thể chỉnh sửa bài viết, tiếp đó sau khi chỉnh sửa chán chê thì tác giả có thể quyết định cập nhật bài viết. Và cuối cùng nếu tác giả thấy bài mình viết ra chuối quá éo có ai thèm đọc cả thì tác giả có thể chọn cách xoá bài viết cho khỏi phải nhìn thấy đỡ cảm thấy nhục : ))

4 hành động trên: tạo ra bài viết (create), chỉnh sửa bài viết (edit), cập nhật bài viết (update) hay xoá bài viết (delete) tương ứng với 4 cách thức mà một tài nguyên được quản lý (ở đây tài nguyên chính là bài viết, tuy nhiên tài nguyên hay resource không chỉ giới hạn ở bài viết mà nó còn có thể là tài khoản người dùng, cũng được quản lý thông qua 4 hành động tạo ra tài khoản hay đăng ký, chỉnh sửa thông tin tài khoản, cập nhật thông tin tài khoản và xoá tài khoản).

Cảm thấy 4 hành động trên sẽ là một công việc quá phổ biến đối với hầu hết các trang web (bạn cứ tưởng tượng xem ngay cả 1 trang thuộc loại hàng khủng như Facebook thì người dùng cũng chủ yếu là tạo bài viết, chỉnh sửa bài viết, cập nhật bài viết và xoá bài viết, tương tự cho thông tin tài khoản), nên đã có một vị Giáo sư đại tài (mà mình quên mịa mất tên bác ấy rồi) chế hẳn ra một quy luật thống nhất như sau để cho tất cả các lập trình viên cứ thế mà làm theo mỗi lần phải lập trình một trang có 4 chức năng trên. Bác này phát biểu quy luật như sau:

  • Khi tạo ra một resource thì các chú cố gắng sử dụng phương thức POST để gửi dữ liệu lên máy chủ nhé (cái này nếu học HTML thì bạn sẽ nhớ ra là phải để thuộc tính method="POST" khi tạo một biểu mẫu. Ví dụ như sau: <form method="POST" action="url-la-cai-me-gi-cung-duoc-het-á.php"></form>.
  • Khi tạo cập nhật một resource thì các chú cứ cố gắng sử dụng phương thức PUT nhé (chú nào mà không làm thì coi chừng thằng đồng nghiệp nó chửi cả thầy lẫn trò khi phải viết lại code của chú đấy!)
  • Khi xoá một resource thì các chú cứ cố gắng sử dụng phương thức DELETE nhé.
  • Và cuối cùng là khi hiển thị một bài viết cho độc giả họ đọc thì sử dụng phương thức GET.

Tóm lại, RESTful service nghe màu mè nhưng rốt cuộc chỉ có thế thôi. Nó là một kiến trúc thống nhất giúp thiết kế các website để có thể dễ dàng quản lý các tài nguyên. Nó không phải là một quy luật buộc bạn phải tuân theo mà đơn giản là một kiến trúc được đề xuất ra và kiến trúc này hiện đang được sử dụng rất phổ biến vì tính đơn giản, dễ hiểu và rất ưu việt của nó. Nhân tiên nhớ ra là REST được đề xuất bởi nhà khoa học máy tính Roy Thomas Fielding vào năm 2012.

Ơ chứ không phải chú mày mới viết ở trên RESTful là 1 quy luật thống nhất à???

Hic, khúc này thành thật xin lỗi các bạn vì đã ...cố tình viết sai sự thật một tí. RESTful nói đúng hơn là một kiến trúc chứ không phải quy luật. Nhưng mà... nếu mình không viết vậy lại thay bằng chữ kiến trúc chắc hẳn se khiến các bạn khó hiểu vì cái cụm từ hàn lâm này nghe rất trừu tượng (thế nên thôi để chữ quy luât cho các bạn dễ hình dung). Lạc đề tí nhưng mà mình có quen 3 cô tên Trúc cô nào cũng xinh đẹp hết á : )).

Nói tóm lại RESTful là cái mẹ gì? Vâng thì ngay bây giờ mình xin được đưa ra định nghĩa về REST như đã hứa ở phần đầu bài viết.

RESTful Là Gì

REST là viết tắt của cụm từ Representational State Transfer (đôi khi còn được viết là ReST) là một kiểu kiến trúc được sử dụng trong việc giao tiếp giữa các máy tính (máy tính cá nhân và máy chủ của trang web) trong việc quản lý các tài nguyên trên internet. REST được sử dụng rất nhiều trong việc phát triển các ứng dụng Web Services sử dụng giao thức HTTP trong giao tiếp thông qua mạng internet. Các ứng dụng sử dụng kiến trúc REST này thì sẽ được gọi là ứng dụng phát triển theo kiểu RESTful.

Bonus: Tặng luôn phần chú thích về ngữ pháp tiếng Anh

Trong từ RESTful, thì từ ful (đọc là phù, phồ, phò hay phùn đều được) chính là suffix trong tiếng Anh, giống như từ help có nghĩa là giúp đỡ thì từ helpful là rất hữu ích.

0