Việc xử lý các yêu cầu và phản hồi API trong Python có thể thay đổi cuộc chơi cho các dự án của bạn. Dù bạn đang xây dựng một ứng dụng web, một ứng dụng di động hay thậm chí là một script đơn giản, hiểu cách tương tác với APIs là điều rất quan trọng. Trong hướng dẫn toàn diện này, chúng ta sẽ tìm hiểu sâu về thế giới của các yêu cầu và phản hồi Python, cung cấp cho bạn các công cụ mà bạn cần để trở thành một bậc thầy về API. Và hey, đừng quên tải Apidog miễn phí - nó sẽ giúp bạn phát triển và kiểm tra API một cách dễ dàng!
Giới thiệu về APIs
Đầu tiên, hãy nói về API là gì. API là viết tắt của Giao diện lập trình ứng dụng. Đây là một tập hợp các quy tắc cho phép các thực thể phần mềm khác nhau giao tiếp với nhau. Hãy nghĩ về nó như một nhân viên phục vụ đang ghi lại đơn đặt hàng của bạn (yêu cầu của bạn) và mang đến món ăn của bạn (phản hồi). APIs có mặt ở khắp nơi – từ các ứng dụng thời tiết đến các nền tảng mạng xã hội.
APIs cho phép các lập trình viên truy cập vào các chức năng của các chương trình phần mềm khác. Điều này có thể dao động từ các tác vụ đơn giản, như lấy dữ liệu từ một máy chủ web, đến các thao tác phức tạp hơn, như tương tác với một mô hình học máy được lưu trữ trên một dịch vụ đám mây.
Tại sao sử dụng APIs?
Sử dụng APIs có thể tiết kiệm cho bạn rất nhiều thời gian và công sức. Thay vì phải phát minh lại bánh xe, bạn có thể tận dụng các dịch vụ và dữ liệu có sẵn. Hơn nữa, điều này cho phép các ứng dụng của bạn trở nên linh hoạt và tích hợp hơn.
Thuật ngữ chính
Trước khi đi vào chi tiết, đây là một số thuật ngữ chính bạn nên biết:
- Điểm cuối: URL nơi API có thể được truy cập.
- Yêu cầu: Thông điệp gửi đến API để thực hiện một hành động.
- Phản hồi: Thông điệp mà API gửi lại với kết quả của yêu cầu.
- Mã trạng thái: Mã cho biết kết quả của yêu cầu (ví dụ: 200 cho thành công, 404 cho không tìm thấy).
Hiểu về các yêu cầu Python
Thư viện requests
của Python là một công cụ mạnh mẽ để thực hiện các yêu cầu HTTP. Nó đơn giản nhưng rất linh hoạt, cho phép bạn tương tác với APIs một cách dễ dàng. Hãy bắt đầu với việc cài đặt thư viện requests
.
pip install requests
Giờ chúng ta đã cài đặt thư viện, hãy tiếp tục với việc thực hiện yêu cầu API đầu tiên của chúng ta.

Thực hiện yêu cầu API đầu tiên của bạn
Để thực hiện một yêu cầu API, bạn sẽ cần một điểm cuối API. Trong ví dụ này, chúng ta sẽ sử dụng API JSONPlaceholder, một REST API giả miễn phí cho việc kiểm tra và thử nghiệm.
Dưới đây là một ví dụ đơn giản về cách thực hiện một yêu cầu GET:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
response = requests.get(url)
print(response.status_code)
print(response.json())
Trong ví dụ này, chúng ta đang gửi một yêu cầu GET đến điểm cuối /posts
. Hàm requests.get
gửi yêu cầu, và phản hồi được lưu trữ trong biến response
. Sau đó, chúng ta in ra mã trạng thái và phản hồi JSON.
Hiểu về Phản hồi
Đối tượng phản hồi chứa tất cả thông tin được trả về bởi máy chủ. Dưới đây là một số thuộc tính hữu ích của đối tượng phản hồi:
status_code
: Mã trạng thái HTTP được máy chủ trả về.headers
: Một từ điển các tiêu đề HTTP.text
: Nội dung phản hồi thô dưới dạng chuỗi.json()
: Một phương thức phân tích nội dung phản hồi dưới dạng JSON.
Thực hiện yêu cầu POST
Đôi khi, bạn sẽ cần gửi dữ liệu đến API. Đây là lúc yêu cầu POST phát huy tác dụng. Dưới đây là một ví dụ:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.post(url, json=data)
print(response.status_code)
print(response.json())
Trong ví dụ này, chúng ta đang gửi một yêu cầu POST đến điểm cuối /posts
với một số dữ liệu JSON. Hàm requests.post
gửi yêu cầu, và phản hồi được xử lý tương tự như yêu cầu GET.

Xử lý Phản hồi API
Giờ đây, khi chúng ta đã thực hiện một số yêu cầu, hãy nói về cách xử lý phản hồi. Điều quan trọng là kiểm tra mã trạng thái để đảm bảo yêu cầu đã thành công.
Kiểm tra Mã trạng thái
Dưới đây là một ví dụ đơn giản về cách kiểm tra mã trạng thái:
import requests
url = 'https://jsonplaceholder.typicode.com/posts/1'
response = requests.get(url)
if response.status_code == 200:
print('Thành công!')
print(response.json())
else:
print('Lỗi:', response.status_code)
Trong ví dụ này, chúng ta kiểm tra xem mã trạng thái có phải là 200
hay không, điều này báo hiệu sự thành công. Nếu yêu cầu thành công, chúng tôi in ra phản hồi JSON. Nếu không, chúng tôi in ra một thông điệp lỗi với mã trạng thái.
Phân tích Phản hồi JSON
Phần lớn APIs trả về dữ liệu ở định dạng JSON. Phương thức response.json()
giúp phân tích dữ liệu JSON một cách dễ dàng. Dưới đây là một ví dụ:
import requests
url = 'https://jsonplaceholder.typicode.com/posts/1'
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print('Tiêu đề:', data['title'])
print('Nội dung:', data['body'])
else:
print('Lỗi:', response.status_code)
Trong ví dụ này, chúng ta đang phân tích phản hồi JSON và in ra các trường title
và body
.
Xử lý Lỗi với Requests
Xử lý lỗi là rất quan trọng khi làm việc với APIs. Bạn cần chuẩn bị cho nhiều tình huống khác nhau, chẳng hạn như sự cố mạng, điểm cuối không hợp lệ và lỗi máy chủ.
Xử lý Lỗi Mạng
Các lỗi mạng có thể xảy ra khi máy chủ không thể tiếp cận hoặc kết nối bị mất. Thư viện requests
cung cấp hỗ trợ tích hợp để xử lý những lỗi này bằng cách sử dụng các ngoại lệ.
Dưới đây là một ví dụ:
import requests
url = 'https://jsonplaceholder.typicode.com/posts/1'
try:
response = requests.get(url)
response.raise_for_status()
except requests.exceptions.HTTPError as errh:
print("Lỗi Http:", errh)
except requests.exceptions.ConnectionError as errc:
print("Lỗi Kết nối:", errc)
except requests.exceptions.Timeout as errt:
print("Lỗi Thời gian chờ:", errt)
except requests.exceptions.RequestException as err:
print("OOps: Một cái gì đó khác", err)
Trong ví dụ này, chúng ta sử dụng một khối try-except để bắt các loại lỗi khác nhau. Phương thức raise_for_status()
sẽ phát sinh một lỗi HTTP khi mã trạng thái không phải là 200.
Xử lý Lỗi Máy chủ
Lỗi máy chủ (mã trạng thái 500-599) cho thấy có vấn đề ở phía máy chủ. Dưới đây là một ví dụ về cách xử lý lỗi máy chủ:
import requests
url = 'https://jsonplaceholder.typicode.com/invalid-endpoint'
response = requests.get(url)
if response.status_code >= 500:
print('Lỗi Máy chủ:', response.status_code)
elif response.status_code == 404:
print('Không tìm thấy:', response.status_code)
elif response.status_code == 400:
print('Yêu cầu không hợp lệ:', response.status_code)
else:
print('Lỗi Khác:', response.status_code)
Trong ví dụ này, chúng ta kiểm tra xem mã trạng thái có nằm trong khoảng 500 không, điều này chỉ ra một lỗi máy chủ. Chúng ta cũng xử lý lỗi 404 (Không tìm thấy) và 400 (Yêu cầu không hợp lệ).
Mẹo và Thủ thuật Nâng cao
Giờ đây, khi chúng ta đã đề cập đến những điều cơ bản, hãy khám phá một số mẹo và thủ thuật nâng cao để làm cho cuộc sống của bạn dễ dàng hơn khi làm việc với APIs trong Python.
Sử dụng Tham số Truy vấn
Các tham số truy vấn cho phép bạn truyền dữ liệu đến API như một phần của URL. Dưới đây là một ví dụ:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
params = {'userId': 1}
response = requests.get(url, params=params)
print(response.status_code)
print(response.json())
Trong ví dụ này, chúng ta đang truyền một tham số userId
đến điểm cuối /posts
. Tham số params
của hàm requests.get
nhận một từ điển các tham số truy vấn.
Sử dụng Tiêu đề
Các tiêu đề được sử dụng để gửi thông tin bổ sung cùng với yêu cầu. Dưới đây là một ví dụ:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
headers = {'Content-Type': 'application/json'}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json())
Trong ví dụ này, chúng ta đang đặt tiêu đề Content-Type
thành application/json
. Tham số headers
của hàm requests.get
nhận một từ điển các tiêu đề.
Xác thực
Nhiều APIs yêu cầu xác thực. Thư viện requests
hỗ trợ nhiều phương pháp xác thực khác nhau, bao gồm Xác thực Căn bản và OAuth. Đây là một ví dụ về cách sử dụng Xác thực Căn bản:
import requests
from requests.auth import HTTPBasicAuth
url = 'https://api.example.com/user'
auth = HTTPBasicAuth('username', 'password')
response = requests.get(url, auth=auth)
print(response.status_code)
print(response.json())
Trong ví dụ này, chúng ta đang sử dụng Xác thực Căn bản để xác thực với API. Tham số auth
của hàm requests.get
nhận một thể hiện của HTTPBasicAuth
.
Cách kiểm tra yêu cầu POST Python của bạn
Apidog là một công cụ mạnh mẽ để kiểm tra APIs. Nó cho phép bạn tạo và lưu các yêu cầu API, tổ chức chúng thành các bộ sưu tập và chia sẻ với đội của bạn.
Dưới đây là cách bạn có thể sử dụng Apidog để kiểm tra yêu cầu POST của mình:
- Mở Apidog và tạo một yêu cầu mới.

2. Đặt phương thức yêu cầu thành POST.

3. Nhập URL của tài nguyên bạn muốn cập nhật. Thêm bất kỳ tiêu đề hoặc tham số bổ sung nào bạn muốn bao gồm rồi nhấp vào nút “Gửi” để gửi yêu cầu.

4. Xác minh rằng phản hồi là như bạn mong đợi.

Kết luận
Trong hướng dẫn này, chúng ta đã đề cập đến những điều cần thiết về việc xử lý các yêu cầu và phản hồi API trong Python. Chúng ta đã xem xét việc thực hiện các yêu cầu GET và POST, xử lý các phản hồi, và xử lý các lỗi. Chúng ta cũng đã khám phá một số mẹo và thủ thuật nâng cao để làm cho cuộc sống của bạn dễ dàng hơn. Hãy nhớ rằng, APIs là một công cụ mạnh mẽ có thể mở ra một thế giới của những khả năng cho các dự án của bạn. Vậy thì hãy tiến lên, thử nghiệm và bắt đầu xây dựng những điều tuyệt vời!
Và đừng quên tải Apidog miễn phí để tăng tốc phát triển và kiểm tra API của bạn. Chúc bạn lập trình vui vẻ!