Contents

API REST là gì và làm cách nào bạn có thể lấy dữ liệu cho ứng dụng hoặc trang web của mình?

Bài học chính

API đóng vai trò quan trọng trong việc cho phép giao tiếp liền mạch giữa các thành phần phần mềm khác nhau bằng cách chấp nhận yêu cầu đầu vào và cung cấp phản hồi đầu ra phù hợp, từ đó đơn giản hóa quá trình truy cập và thao tác dữ liệu trên các hệ thống khác nhau.

API RESTful sử dụng Mã định danh tài nguyên thống nhất (URI) làm phương tiện truy cập và thao tác tài nguyên, sử dụng nhiều động từ yêu cầu khác nhau như GET, POST, PUT và DELETE để thực hiện các hoạt động bao gồm truy xuất, tạo, sửa đổi và xóa thông tin tương ứng.

Việc sử dụng các thư viện như got trong JavaScript hoặc Requests trong Python cho phép các nhà phát triển xây dựng các ứng dụng có khả năng truy xuất thông tin từ nhiều API RESTful thông qua việc cung cấp khóa API và truy vấn trong URL.

Thuật ngữ “API” thể hiện khái niệm về giao diện lập trình ứng dụng, đóng vai trò là phương tiện để tạo điều kiện giao tiếp giữa các ứng dụng thông qua một loạt các chức năng được xác định. Về bản chất, khi một chương trình phần mềm gửi yêu cầu đến một chương trình khác thông qua API, nó sẽ nhận được câu trả lời tương ứng và thích hợp.

REST (Chuyển giao trạng thái đại diện) là một kiểu kiến ​​trúc được sử dụng trong việc phát triển các ứng dụng máy khách-máy chủ. Nó liên quan đến việc thu được mô tả dữ liệu nằm trong cơ sở dữ liệu thông qua việc sử dụng API RESTful. Hơn nữa, loại API này hoạt động theo cách không trạng thái, nghĩa là máy chủ không lưu giữ bất kỳ thông tin nào liên quan đến yêu cầu của khách hàng trong khoảng thời gian tạm thời.

API REST hoạt động như thế nào?

API RESTful sử dụng Mã định danh tài nguyên thống nhất (URI) để truy xuất và thao tác dữ liệu, với các URL đóng vai trò là dạng URI điển hình được sử dụng trong các ngữ cảnh như vậy.

Để sử dụng và sửa đổi tài nguyên, API RESTful sử dụng các động từ yêu cầu cụ thể để truy cập và thao tác tài nguyên:

⭐Nhận€”tìm nạp dữ liệu từ cơ sở dữ liệu.

⭐Bài đăng€”thêm dữ liệu mới vào cơ sở dữ liệu.

⭐Đưa dữ liệu cập nhật vào cơ sở dữ liệu.

⭐Delete€”xóa dữ liệu khỏi cơ sở dữ liệu.

Việc sử dụng vô số API RESTful có sẵn có thể truy cập trực tuyến thay thế cho việc xây dựng giải pháp của riêng bạn (thay vì phát triển giải pháp tùy chỉnh) sẽ hạn chế các tùy chọn của bạn chỉ ở phương thức yêu cầu GET (thông qua URL). Các URL được đề cập bao gồm nhiều thành phần khác nhau nhưng những thành phần phù hợp nhất với nhu cầu của bạn bao gồm thông tin xác thực ủy quyền cần thiết và mọi tham số truy vấn cần thiết để truy xuất dữ liệu.

Khi đăng ký nền tảng Giao diện lập trình ứng dụng (API) RESTful, một cá nhân sẽ nhận được một mã định danh duy nhất được gọi là khóa API. Khóa này đóng vai trò như một phương tiện để tùy chỉnh tìm kiếm của một người bằng cách sử dụng một truy vấn hoặc truy vấn cụ thể. Ví dụ: nếu ai đó muốn thu thập thông tin về điều kiện khí hậu hiện tại ở Thành phố New York, họ sẽ bao gồm “city=New York” trong phần truy vấn của Bộ định vị tài nguyên thống nhất (URL) của họ.

Khi thực hiện yêu cầu GET, phản hồi kết quả bao gồm mã trạng thái và nội dung. Trong trường hợp yêu cầu được thực hiện thành công, cơ quan phản hồi sẽ cung cấp thông tin mong muốn nhằm mục đích sử dụng trong trang web hoặc ứng dụng.

Sử dụng ứng dụng JavaScript để lấy dữ liệu từ các API REST khác nhau

Để phát triển ứng dụng JavaScript này, cần phải tải xuống và cài đặt hai chương trình phần mềm riêng biệt vào máy tính cá nhân của bạn-cụ thể là NodeJS và npm. May mắn thay, chúng tôi đã chuẩn bị một hướng dẫn chi tiết về cách thực hiện quy trình này cho người dùng cả hệ điều hành Ubuntu và Windows. Nếu bạn muốn biết thêm thông tin về chủ đề này, vui lòng tham khảo các bài viết tương ứng của chúng tôi trong đó phác thảo quy trình cài đặt từng bước cho từng nền tảng.

Sau khi cài đặt các gói phần mềm nói trên, cần thực hiện các hành động tiếp theo:

Vui lòng mở môi trường phát triển tích hợp (IDE) của bạn và khởi chạy thiết bị đầu cuối trong đó.

Để truy cập thư mục chứa tệp ứng dụng JavaScript của bạn, hãy sử dụng lệnh cd trong cửa sổ terminal hoặc dấu nhắc lệnh. Điều này sẽ cho phép bạn thay đổi thư mục làm việc hiện tại và tạo điều kiện thuận lợi cho việc điều hướng đến vị trí mong muốn.

⭐ Khởi tạo npm bằng dòng mã sau:

 npm init -y 

Việc triển khai chức năng cốt lõi của ứng dụng này dựa trên một mô-đun npm cụ thể được gọi là “got”, đóng vai trò là thư viện yêu cầu HTTP cho NodeJS. Để đảm bảo rằng thư viện got được tích hợp trong các tệp ứng dụng, bạn có thể sử dụng lệnh được cung cấp để tự động cài đặt phiên bản mới nhất của nó:

 npm install got@latest 

Bây giờ bạn có thể tự do xây dựng ứng dụng của mình theo ý mình.

Sử dụng Thư viện Got để xây dựng ứng dụng của bạn

 // import the got library into your application
import got from 'got';

// fetch data from an API and prints its body to the terminal
(async () => {
  try {
    const response = await got(URL);
    const data = JSON.parse(response.body);
    console.log(data);
  } catch (error) {
    console.log(error.data);
  }
})();

Ứng dụng nói trên có thể trích xuất thông tin từ bất kỳ API RESTful dựa trên internet nào; tuy nhiên, cần phải cung cấp trước Bộ định vị tài nguyên thống nhất (URL) thích hợp của tài nguyên thích hợp.

Lấy dữ liệu từ API REST thời tiết

API Weatherbit.io là một trong những API thời tiết phổ biến hơn. Việc chèn URL của API này vào ứng dụng JavaScript đơn giản ở trên sẽ giúp ứng dụng hoạt động.

Sử dụng API REST của Weatherbit.io

 // import the got library into your application
const got = require('got');

// fetch data from an API and prints its body to the terminal
(async () => {
  try {
    const URL =
      'https://api.weatherbit.io/v2.0/current?lat=40.7128&lon=-74.0060&key=API_KEY';

    const response = await got(URL);
    const data = JSON.parse(response.body);
    console.log(data);
  } catch (error) {
    console.log(error.data);
  }
})();

URL cho API Weatherbit.io đã được tích hợp vào ứng dụng. Để đảm bảo hoạt động bình thường, điều cần thiết là phải sửa đổi một thành phần trong URL có tên là “API\_KEY”. Khóa này được Weatherbit.io cung cấp khi đăng ký tài khoản miễn phí và đóng vai trò là thành phần quan trọng trong việc truy cập các dịch vụ của họ thông qua API này.

Bạn có thể chọn sửa đổi phần truy vấn trong mã được cung cấp. Hiện tại, chương trình lấy dữ liệu thời tiết tại tọa độ địa lý 40,7128 độ vĩ Bắc và-74,0060 độ kinh Tây; tuy nhiên, bạn có thể linh hoạt nhập tọa độ thay thế nếu muốn. Mặc dù cách triển khai nhất định được coi là phù hợp nhưng thay vào đó, bạn cũng có tùy chọn tìm kiếm thông tin thời tiết dựa trên tên của một thành phố cụ thể.

Sau khi nhập khóa API vào trường được chỉ định, bạn hiện được phép chạy tập lệnh JavaScript của mình. Giao diện sẽ hiển thị một thông báo tương tự như kết quả sau trên dấu nhắc lệnh của bạn:

/vi/images/weather-api-response-body-part1.jpg /vi/images/weather-api-response-body-part2.jpg

Một số yếu tố chính của dữ liệu phản hồi rất đáng chú ý, bao gồm nhưng không giới hạn ở:

Thành phố nằm ở tọa độ kinh độ và vĩ độ cụ thể được biểu thị bằng tên của nó, đóng vai trò là mã định danh duy nhất cho khu vực đô thị cụ thể đó trong khu vực địa lý rộng hơn.

Thời gian hiện tại được biểu thị bằng Giờ phối hợp quốc tế (UTC) và biểu thị giờ trong ngày ở định dạng năm, tháng và ngày bằng cách sử dụng kết hợp các số và chữ cái để biểu thị cả năm và ngày trong tuần (chẳng hạn như “ 2023-04-15T08:30”).

Thực thể “thời tiết” đại diện cho một cấu trúc tổng hợp bao gồm một ký hiệu trực quan biểu thị các điều kiện khí tượng, một mã định danh chữ và số tương ứng được gọi là mã thời tiết và sự thể hiện bằng lời nói về trạng thái khí hậu hiện tại hoặc dự báo.

Lấy dữ liệu từ API REST tin tức

Phần này sử dụng API Newsdata.io. Giống như tất cả các API REST trên web, nó cung cấp một số tùy chọn truy vấn mà bạn có thể sử dụng để truy xuất tin tức nóng hổi từ khắp nơi trên thế giới. Với API Newsdata.io, bạn có thể nhận tin tức từ một quốc gia cụ thể hoặc bằng một ngôn ngữ, danh mục cụ thể, v.v.

Thông qua việc sử dụng ứng dụng JavaScript, người ta có thể lấy thông tin từ API RESTful Tin tức bằng cách thay thế URL được cung cấp trong ứng dụng bằng URL được chỉ định bên dưới:

 'https://newsdata.io/api/1/news?apikey=YOUR_API_KEY&country=us'

Để truy cập tin tức nóng hổi từ Mỹ bằng API Newsdata.io, người ta phải thay thế phần giữ chỗ “YOUR\_API\_KEY” trong URL được chỉ định bằng khóa API duy nhất mà họ sẽ nhận được khi đăng ký thành công với Newsdata.io. Bằng cách thay đổi tham số “quốc gia” từ “chúng tôi” thành “jp”, thay vào đó, bạn có thể truy xuất các bài báo từ Nhật Bản.

Tải trọng dữ liệu tiếp theo sẽ bao gồm một loạt phiên bản, mỗi phiên bản chứa thông tin thích hợp liên quan đến các sự kiện hiện tại đang diễn ra tại Hoa Kỳ. Trong trường hợp cụ thể này, yếu tố ban đầu của bộ sưu tập sẽ đóng vai trò là điểm xuất phát của chúng tôi để phân tích và thảo luận sâu hơn.

/vi/images/news-api-response-body-part1.jpg /vi/images/news-api-response-body-part2.jpg

Sử dụng ứng dụng Python để lấy dữ liệu từ các API còn lại khác nhau

Bạn có thể lấy dữ liệu cho một trang web hoặc chương trình phần mềm bằng bất kỳ ngôn ngữ lập trình nào mà bạn thành thạo. Do đó, nếu bạn không muốn sử dụng JavaScript, bạn có thể đạt được kết quả tương tự thông qua việc triển khai giải pháp dựa trên Python. Điều này có thể liên quan đến việc xây dựng Giao diện lập trình ứng dụng (API) Python bằng một trong các khung phổ biến của nó hoặc truy xuất thông tin từ API chuyển trạng thái đại diện (REST) ​​còn tồn tại bằng một tập lệnh đơn giản.

Để sử dụng thư viện yêu cầu trong Python, cần sử dụng trình quản lý gói pip và cài đặt mô-đun nói trên. Sau khi cài đặt, người ta có thể phát triển chương trình của mình bằng cách triển khai mã được cung cấp.

 # import the requests library
import requests

# grabbing data using the requests library
URL = 'https://newsdata.io/api/1/sources?apikey=YOUR_API_KEY=us'
res = requests.get(URL)
json = res.json()

for key in json:
    print(key, json[key])

Để sử dụng chức năng của giao diện lập trình ứng dụng (API), cần phải kết hợp mã định danh duy nhất (khóa API) của bạn trong trường được chỉ định. Điều này sẽ tạo ra một đối tượng phản hồi, gần giống với đầu ra do quá trình triển khai JavaScript tạo ra, chứa dữ liệu ở định dạng phù hợp để xử lý và phân tích.

/vi/images/news-api-response-body-python.jpg

Lấy dữ liệu cho trang web hoặc ứng dụng của bạn khá đơn giản

Với sự sẵn có của các nguồn lực đầy đủ, điều cần thiết là phải nhận ra lợi ích của phương pháp tiếp cận kiến ​​trúc REST trong việc thúc đẩy khả năng tách rời giữa các thành phần khác nhau. Tính linh hoạt của phương pháp này cho phép các nhà phát triển sử dụng nhiều ngôn ngữ lập trình khác nhau trong khi truy cập dữ liệu từ nhiều API RESTful có sẵn trực tuyến.

Điều cần thiết là phải nhận ra tầm quan trọng của cả khóa API và truy vấn khi cố gắng lấy thông tin chính xác mà ứng dụng của bạn yêu cầu.