Api/restful api, api call, axios

Các trang web to bây chừ mọi cung cấp hệ thống API hỗ trợ cho chúng ta có thể viết các ứng dụng ảnh hưởng, ví như với social Facebook, Google họ đều sở hữu những API để tiến hành những liên tưởng. Ở Việt nam một vài các trang tmùi hương mại năng lượng điện tử béo đã và đang bước đầu cung cấp các RESTfull API nlỗi Lazada, Senbởi... giỏi hệ thống cách tân và phát triển mngơi nghỉ của FPT cũng có thể có những API cho phép bạn thực hiện. Các hệ thống API này có thể thực hiện xác thực msinh hoạt OAuth 2 hoặc cũng hoàn toàn có thể không quan trọng. Chúng ta hoàn toàn có thể tạo nên những vận dụng để triển khai vấn đề với các khối hệ thống API này thông việc Điện thoại tư vấn mang đến các API được hỗ trợ sẵn.

Bạn đang xem: Api/restful api, api call, axios

1. Cơ bạn dạng về Axios

1.1 Axquả táo là gì?

Axgame ios là một trong HTTPhường client dựa được cải cách và phát triển trên đối tượng người tiêu dùng Javascript Promise, nó hoàn toàn có thể thực hiện trong số áp dụng font-kết thúc Vue.js, React, Angular... Sử dụng Axios thuận tiện gửi đi những request HTTP. bất đồng hóa mang lại các REST endpoint cùng thực hiện các chức năng CRUD. Chúng ta chạm chán yêu cầu một số trong những tư tưởng hoàn toàn có thể đa số chúng ta chưa chắc chắn đến:

HTTP client là có thể là phần mềm, thỏng viện hoàn toàn có thể tiến hành những từng trải (request) dạng HTTPhường mang lại sever HTTP.. cùng nhận về những hồi đáp (reponse). Đơn giản hơn bạn có thể coi nó gần với cùng 1 trình phê chuẩn website.

Javascript Promise là 1 đối tượng người sử dụng góp kiểm soát công dụng xong giỏi không thắng cuộc của một hành động bất đồng điệu trong Javascript (Tmê mẩn khảo thêm Kiến thức về Javascript Promise). Vue.js, React, Angular là mọi framework Javascript hiện tại đang khôn cùng hot, góp sản xuất các vận dụng font-kết thúc linh hoạt chuyển động nkhô giòn cùng mạnh khỏe.

REST endpoint là hầu hết điểm (URL) hỗ trợ những chức năng API cho phép họ thúc đẩy với cùng một hệ thống, ví dụ Khi họ mong muốn liên hệ với Lazadomain authority bạn có thể gửi những request HTTP mang lại các REST API bởi vì Lazadomain authority cung ứng.

CRUD viết tắt của Create, Read, Update, Delete là một thuật ngữ lập trình sẵn kể đến 4 hướng thức thân quen Khi thao tác làm việc cùng với kho dữ liệu.

Tóm lại Axquả táo là 1 "trình duyệt" trong Javascript giúp chúng ta triển khai làm việc cùng với các website hoặc API giúp tạo ra phần đông ứng dụng font-kết thúc linch hoạt khỏe mạnh rộng.

1.2 Cài đặt Axios

Tlỗi viện axquả táo có thể thiết đặt thông qua chính sách npm:

npm install axiosHoặc chèn băng thông file Javascript bên trên những CDN:

script src="https://unpkilogam.com/axios/dist/axtiện ích ios.min.js">/script>Nếu các bạn áp dụng framework Laravel, thư viện Axquả táo đã làm được tùy chỉnh sẵn vào tệp tin resourcesassetsootstrap.js:

/** * We"ll load the axtiện ích ios HTTPhường library which allows us khổng lồ easily issue requests * to lớn our Laravel back-end. This library automatically handles sending the * CSRF token as a header based on the value of the "XSRF" token cookie. */window.axquả táo = require("axios");window.axtiện ích ios.defaults.headers.common<"X-Requested-With"> = "XMLHttpRequest";còn chỉ vấn đề triển khai npm install để thiết lập những gói đã làm được thiết lập cấu hình sẵn.

1.3 Các thủ tục của axios

1.3.1 Phương thơm thức gửi đề xuất HTTP

Các thủ tục HTTPhường hay áp dụng những tuyệt nhất nhằm khai thác tài liệu là GET cùng POST. Axios gồm hai cách làm để thực hiện GET cùng POST tài liệu.

axquả táo.get("http://test.com/user?ID=12345") .then(function (response) console.log(response); ) .catch(function (error) console.log(error); );Đoạn mã này gửi một request cùng với cách làm GET đến URL http://thử nghiệm.com/user?ID=12345, ví như thành công xuất sắc tác dụng sẽ được in ra console vào .then() và ví như lỗi thì in lỗi ra console vào .catch(). Quý khách hàng rất có thể tưởng tượng nó giống như câu hỏi chúng ta msinh hoạt trình coi ngó ra, gõ vào băng thông buộc phải mang lại cùng ngóng, trường hợp đọc tin được hiển thị các bạn sẽ đọc được, còn nếu không một thông tin lỗi hiển thị lên trên trình phê chuẩn. Chú ý, tđam mê số truyền vào (query string) hoàn toàn có thể đưa vào phần tmê say số nlỗi sau:

axtiện ích ios.get("http://thử nghiệm.com/user", params: ID: 12345 ) .then(function (response) console.log(response); ) .catch(function (error) console.log(error); );Tiếp theo bọn họ xem gửi tài liệu cùng với thủ tục POST đến một URL như vậy nào:

function getAccountInfomation() return axtiện ích ios.get("/account/12345");function getOrderInfomation() return axgame ios.get("/order/12345");axquả táo.all() .then(axios.spread(function (account, order) // Cả nhì thưởng thức được dứt ));Các cách thức khác như DELETE, PUT, PATCH cũng rất được cung ứng. Quý Khách hoàn toàn có thể bài viết liên quan vào tài liệu Axios. Tiếp theo, họ vẫn mày mò phương pháp chuyển thêm các cấu hình thiết lập thông số kỹ thuật trước khi gửi đi đề nghị HTTP (cùng với trình chăm chú thường xuyên nó ngầm định nên bạn ko xem xét đến).

Xem thêm: Áo Tee Là Gì - Basic Tee Là Gì

axios(url, )Các yên cầu HTTP hoàn toàn có thể gửi đi bằng cú pháp làm việc bên trên, có thể truyền vào các cấu hình trong đối tượng config nlỗi sau:

// URL đích mang đến của thử khám phá HTTPhường url: "/user", // Pmùi hương thức gửi trải đời có thể là GET, POST, DELETE, PUT... method: "get", // default // URL các đại lý, nếu bạn có tương đối nhiều request mang lại một VPS thực hiện URL cửa hàng nhằm rút ít gọn gàng tsay đắm số url làm việc bên trên // URL đại lý rất có thể thiết lập cấu hình toàn cục để cần sử dụng lại về sau. baseURL: "https://demo.com/api/", // Thay đổi headers object của request. transformRequest: , // Thay thay đổi headers object của phần response transformResponse: , // Thiết lập những quý giá đến headers object. headers: "X-Requested-With": "XMLHttpRequest", // Thêm tđam mê số vào query string params: ID: 12345 , // Cũng là tham số tuy vậy cấp dưỡng body toàn thân của request data: firstName: "Nguyen" , // Thiết lập thời gian đợi chờ cho cách xử lý thưởng thức, giả dụ vượt quá đang bỏ vứt thưởng thức HTTP.. timeout: 1000, // Nhận diện từng trải là cross-site Access-Control hay không withCredentials: false, // mặc định // Nhận diện URL bao gồm nên xác xắn hay là không cùng gửi đi những công bố để xác xắn. auth: username: "tuandungb", password: "123456" , // Nhận diện dạng tài liệu trả về từ bỏ server: arraybuffer, blob, document, json, text, stream responseType: "json", // mang định // `xsrfCookieName` is the name of the cookie to use as a value for xsrf token xsrfCookieName: "XSRF-TOKEN", // mặc định // `xsrfHeaderName` is the name of the http header that carries the xsrf token value xsrfHeaderName: "X-XSRF-TOKEN", // mặc định // Quản lý các bước upload onUploadProgress: function (progressEvent) // Do whatever you want with the native sầu progress event , // Quản lý tiến trình tải về onDownloadProgress: function (progressEvent) // Do whatever you want with the native progress event , // Kích thước tài liệu buổi tối đa trả lời từ máy chủ maxContentLength: 2000, // Kiểm tra tâm trạng validateStatus: function (status) return status >= 200 &và status 300; // mặc định , // Số lần chuyển hướng chất nhận được Lúc Điện thoại tư vấn đến URL, nếu như cấu hình thiết lập 0 là ko có thể chấp nhận được maxRedirects: 5, // khoác định // `httpAgent` và `httpsAgent` define a custom agent to lớn be used when performing http httpAgent: new http.Agent( keepAlive: true ), httpsAgent: new https.Agent( keepAlive: true ), // Thiết lập proxy proxy: host: "127.0.0.1", port: 9000, auth: username: "tuandungb", password: "123456" , // Xác định cancel token sử dụng nhằm bỏ vứt thưởng thức cancelToken: new CancelToken(function (cancel) )

1.3.2 Cấu trúc tài liệu hồi đáp

Đối tượng response được trả về tự hệ thống có cấu tạo như sau:

// Dữ liệu yêu cầu lấy từ sever data: , // Mã trạng thái HTTPhường của thưởng thức status: 200, // Mô tả tâm trạng khớp ứng với mã tâm lý sống bên trên statusText: "OK", // tin tức header của hồi đáp (response) headers: , // config được tùy chỉnh cấu hình trước khi gửi request config: , // là thực thể của ClientRequest giả dụ sử dụng Node.js cùng XMLHttpRequest vào trình phê duyệt request: Với kết cấu này, lúc 1 request HTTP được gửi đến hệ thống chúng ta có thể thống trị được những biết tin trả về tự server, hãy xem ví dụ sau:

axgame ios.get("http://test.com/user/12345") .then(function(response) console.log(response.data); console.log(response.status); console.log(response.statusText); console.log(response.headers); console.log(response.config); );

1.3.3 Hook API

Trong quy trình gửi đi một yên cầu, ngay lập tức trước khi gửi chúng ta cũng có thể mong ước tiến hành một số công việc hoặc ngay lúc nhận được response cũng vậy.

lấy một ví dụ thực cố kỉnh, ví như bạn muốn là một trong những thanh khô tinh thần hiển thị xác suất công việc đã thực hiện, chúng ta cần phải biết các thời điểm ngay trong lúc gửi request và ngay trong khi nhận thấy response. Có thể áp dụng những thuật ngữ nlỗi Hook API hoặc Interceptor cho đa số gì biểu hiện ở bên trên. Với axtiện ích ios chúng ta xem thêm đoạn mã dưới đây kết phù hợp với tlỗi viện nprogress:

axtiện ích ios.interceptors.request.use(function (config) NProgress.start(); return config;, function (error) return Promise.reject(error););axquả táo.interceptors.response.use(function (response) NProgress.done(); return response;, function (error) return Promise.reject(error););

1.3.4 Kiểm rà soát lỗi Lúc gửi từng trải HTTP cùng với Axios

Kiểm kiểm tra lỗi cụ thể là vô cùng quan trọng, với từng lỗi rõ ràng họ sẽ sở hữu được các giải pháp xử lý hiếm hoi bức tốc từng trải người tiêu dùng với sự linc hoạt của ứng dụng:

axtiện ích ios.get("http://demo.com/user/12345") .catch(function (error) if (error.response) // Lỗi lúc VPS cảm nhận request với không cách xử lý được, các lỗi này có mã lỗi trong dải 2xx console.log(error.response.data); console.log(error.response.status); console.log(error.response.headers); else if (error.request) // Lỗi lúc request được tạo nên tuy vậy VPS không trả lời, lúc ấy error.request là 1 trong những thực thể của XMLHttpRequest console.log(error.request); else // Lỗi Khi tùy chỉnh request console.log("Error", error.message); console.log(error.config); );

1.3.5 Hủy quăng quật một yêu thương cầu

Hủy quăng quật yêu cầu là một công dụng cần thiết, chúng ta tưởng tượng người dùng click vào nút ít gửi deals và từng deals xử lý trong 10 giây, mặc dù ngay lập tức sau khoản thời gian cliông chồng người tiêu dùng lại ý muốn diệt quăng quật trải nghiệm nhằm sửa lại đơn hàng này với số lượng hàng hóa nhiều hơn nữa, như thế hủy vứt yên cầu là vô cùng cần thiết.

var CancelToken = axquả táo.CancelToken;var source = CancelToken.source();axtiện ích ios.post("http://thử nghiệm.com/order", data: "product_id": 234, "quantity": 3 , cancelToken: source.token).catch(function(thrown) if (axtiện ích ios.isCancel(thrown)) console.log("Hủy vứt yêu cầu", thrown.message); else // Quản lý lỗi tại đây );// Người cần sử dụng ý muốn hủy đề xuất sinh sản đơn hàng mớisource.cancel("Hủy thử dùng sinh sản giao dịch bắt đầu.");2. Xây dựng ứng dụng khai quật thông tin Vnexpress.net với Vue.js + Axios

2.1 Đặt vấn đề

Trong phần 1 phát âm Axios là gì? với biết cách sử dụng thư viện này, phần tiếp theo sau họ sẽ cùng cả nhà xây cất một ví dụ cụ thể nhằm có thể làm rõ hơn về phương thức vận dụng Axios. Ví dụ của bọn họ là 1 trong những trang khai thác thông tin từ Vnexpress.net.

*

Do Vnexpress.net ko hỗ trợ API nhằm khai quật tin phải họ vẫn sử dụng RSS2JSON để biến hóa từ bỏ RSS sang thành một API trả về dữ liệu Json. Cấu trúc tài liệu trả về tất cả dạng Json nhỏng hình ảnh dưới:

*

Ok, điều này bọn họ vẫn gồm API hỗ trợ tài liệu, tiếp sau họ đang thực hiện Vue.js cùng Axios để khai thác tin tức và trình diễn lại trang.

2.2 Xây dựng trang khai quật tin

Diễn giải ứng dụng:

Điểm vào của áp dụng là thực hiện axtiện ích ios.get để lấy tài liệu trường đoản cú API bởi vì RSS2JSON hỗ trợ, tài liệu trả về dạng JSON.

Sử dụng v-for của Vue.js để lặp lại qua mảng results cùng hiển thị từng thành tựu (bài viết) trong mảng này, chúng ta style bằng bootstrap.

Do thời hạn có hạn cần vận dụng khai quật tin chỉ tạm dừng làm việc công dụng cơ phiên bản sẽ giúp đỡ độc giả làm rõ rộng về axtiện ích ios, hứa hẹn bao gồm thời hạn họ đã làm một ứng dụng khai quật tin trẻ khỏe và không thiếu thốn anh tài rộng.

3. Tại sao dùng Axios?

Hiện tại có tương đối nhiều những HTTPhường Client dạng Javascript hoàn toàn có thể nói đến quanh đó Axgame ios nhỏng việc thực hiện jQuery, phương thức fetch() được cung cấp trường đoản cú ES6, SuperAgent, Qwest... Tuy nhiên Axios có tương đối nhiều ưu điểm nlỗi sau:

Axgame ios xây dừng dựa vào gốc rễ Promise cho nên nó kế thừa những ưu điểm của Promise.Cho phép tiến hành các hook (intercept) ngay lúc gửi request và dấn response.Cho phép bỏ thử dùng, đấy là một tính năng nhưng mà các thỏng viện khác không có.

Xem thêm: Tổng Quan Ngành Truyền Thông Và Mạng Máy Tính Là Gì ? Ra Trường Làm Gì?

4. Lời kết

Qua nội dung bài viết, tôi tin rằng chúng ta vẫn trả lời được thắc mắc Axquả táo là gì?, Tại sao cần sử dụng Axios?. Axios là HTTP.. Client góp xây dừng các ứng dụng liên kết từ nhiều mối cung cấp tài liệu dễ ợt, nếu tất cả sự tác động bạn sẽ thấy nó kiểu như với GuzzleHttp trong PHP.. Axquả táo là phần chính sách giúp mang tài liệu dễ dãi cho những framework như Vue.js, React.js, Angular... xây đắp các vận dụng font-over biến hóa năng động cùng tiện lợi.


Chuyên mục: Hỏi Đáp