Axios là gì? Cơ bản về Axios trong VueJs

Tram Ho

Cơ bản về Axios

Axios là gì?

Axios là một HTTP client được phát triển dựa trên Javascript Promise, nó có thể sử dụng trong các ứng dụng font-end Vue.js,
React, Angular… Sử dụng Axios giúp dễ dàng gửi đi các request HTTP bất đồng bộ đến các REST endpoint và thực hiện các chức năng
CRUD.

Chúng ta cần có một số khái niệm sau:

  • HTTP client là có thể là phần mềm, thư viện có thể thực hiện các yêu cầu (request) dạng HTTP đến máy chủ HTTP và nhận về các hồi đáp (reponse). Đơn giản hơn bạn có thể coi nó gần với một trình duyệt web.
  • Javascript Promise là một đối tượng giúp kiểm soát kết quả hoàn thành hay thất bại của một hành động bất đồng bộ trong Javascript
  • (tham khảo thêm Kiến thức về Javascript Promise).
  • Vue.js, React, Angular là những framework Javascript hiện đang rất hot, giúp xây dựng những ứng dụng font-end linh hoạt hoạt động nhanh và mạnh mẽ.
  • REST endpoint là những điểm (URL) cung cấp các chức năng API cho phép chúng ta tương tác với một hệ thống, ví dụ khi chúng ta muốn tương tác với V1Study chúng ta có thể gửi các request HTTP đến các REST API do V1Study cung cấp.
  • CRUD viết tắt của Create, Read, Update, Delete là một thuật ngữ lập trình nói đến 4 phương thức quen thuộc khi làm việc với kho dữ liệu.

Tóm lại, Axios là một “trình duyệt” trong Javascript giúp chúng ta thực hiện thao tác với các website hoặc API giúp xây dựng những
ứng dụng font-end linh hoạt mạnh mẽ hơn.

Cài đặt Axios

Thư viện axios có thể cài đặt thông qua công cụ npm:

Hoặc chèn đường dẫn file Javascript trên các CDN:

Nếu bạn sử dụng framework Laravel, thư viện Axios đã được thiết lập sẵn trong file resourcesassetsbootstrap.js:

và chỉ việc thực hiện npm install để cài đặt các gói đã được thiết lập sẵn.

Phương thức gửi yêu cầu HTTP

Các phương thức HTTP thường sử dụng nhiều nhất để khai thác dữ liệu là GET và POST. Axios có hai phương thức để thực hiện
GET và POST dữ liệu.

Đoạn mã này gửi một request với phương thức GET đến URL http://v1study.com/user?ID=12345, nếu thành công kết quả sẽ được in
ra console trong .then() và nếu lỗi thì in lỗi ra console trong .catch(). Bạn có thể tưởng tượng nó giống như việc bạn mở trình duyệt ra,
gõ vào đường dẫn cần đến và chờ, nếu thông tin được hiển thị bạn sẽ đọc được, nếu không một thông báo lỗi hiển thị lên trên trình
duyệt. Chú ý, tham số truyền vào (query string) có thể đưa vào phần tham số như sau:

Tiếp theo chúng ta xem gửi dữ liệu với phương thức POST đến một URL như thế nào:

Đoạn code trên thực hiện giống như chúng ta mở một form tạo mới user, nhập các dữ liệu vào và nhấn nút Gửi. Trên đây chúng ta gửi
đi các yêu cầu đơn lẻ, nếu như muốn cùng một lúc gửi nhiều các yêu cầu lấy dữ liệu thì sao? Ví dụ tiếp theo gửi đi hai yêu cầu, một
để lấy thông tin tài khoản, một để lấy thông tin đơn hàng.

Các phương thức khác như DELETE, PUT, PATCH cũng được hỗ trợ. Bạn có thể tham khảo thêm trong tài liệu Axios. Tiếp theo,
chúng ta sẽ tìm hiểu cách thức đưa thêm các thiết lập cấu hình trước khi gửi đi yêu cầu HTTP (với trình duyệt thường nó ngầm định
nên bạn không để ý đến).

Các yêu cầu HTTP có thể gửi đi bằng cú pháp ở trên, có thể truyền vào các cấu hình trong đối tượng config như sau:

Cấu trúc dữ liệu hồi đáp

Đối tượng response được trả về từ server có cấu trúc như sau:

Với cấu trúc này, khi một request HTTP được gửi đến server chúng ta có thể quản lý được các thông tin trả về từ server, hãy xem ví dụ sau:

Hook API

Trong quá trình gửi đi một yêu cầu, ngay trước khi gửi chúng ta có thể mong muốn thực hiện một số công việc hoặc ngay khi nhận
được response cũng vậy. Ví dụ thực thế, nếu bạn muốn là một thanh trạng thái hiển thị phần trăm công việc đang thực hiện, bạn cần
biết các thời điểm ngay khi gửi request và ngay khi nhận được response. Có thể sử dụng các thuật ngữ như Hook API hoặc
Interceptor cho những gì mô tả ở trên. Với axios bạn tham khảo đoạn mã dưới đây kết hợp với thư viện nprogress:

Kiểm soát lỗi khi gửi yêu cầu HTTP với Axios

Kiểm soát lỗi chi tiết là rất cần thiết, với từng lỗi cụ thể chúng ta sẽ có những xử lý riêng biệt tăng cường trải nghiệm người dùng với
sự linh hoạt của ứng dụng:

Hủy bỏ một yêu cầu

Hủy bỏ yêu cầu là một chức năng cần thiết, bạn tưởng tượng người dùng click vào nút gửi đơn hàng và mỗi đơn hàng xử lý trong 10
giây, tuy nhiên ngay sau khi click người dùng lại muốn hủy bỏ yêu cầu để sửa lại đơn hàng này với số lượng sản phẩm nhiều hơn,
như vậy hủy bỏ yêu cầu là rất cần thiết.

Tại sao dùng Axios

Hiện tại có rất nhiều các HTTP Client dạng Javascript có thể kể đến ngoài Axios như việc sử dụng jQuery, phương thức fetch() được
hỗ trợ từ ES6, SuperAgent, Qwest… Tuy nhiên Axios có nhiều ưu điểm như sau:

  • Axios xây dựng dựa trên nền tảng Promise do đó nó kế thừa các ưu điểm của Promise.
  • Cho phép thực hiện các hook (intercept) ngay khi gửi request và nhận response.
  • Cho phép hủy yêu cầu, đây là một chức năng mà các thư viện khác không có.

Qua bài viết, tôi tin rằng bạn đã trả lời được câu hỏi Axios là gì?, Tại sao dùng Axios?. Axios là HTTP Client giúp xây dựng các ứng dụng kết nối từ nhiều nguồn dữ liệu dễ dàng, nếu có sự liên tưởng bạn sẽ thấy nó giống với GuzzleHttp trong PHP. Axios là phần công cụ giúp lấy dữ liệu dễ dàng cho các framework như Vue.js, React.js, Angular… xây dựng các ứng dụng font-end linh động và dễ dàng.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo