
API Là Gì?
Hiểu Đơn Giản Về API
API (Application Programming Interface) là “cầu nối” giúp các ứng dụng phần mềm tương tác với nhau một cách dễ dàng. Nếu UI (User Interface) giúp người dùng tương tác với ứng dụng, thì API giúp các ứng dụng “nói chuyện” với nhau.
Ví Dụ Thực Tế:
- Khi bạn đặt món ăn qua ứng dụng giao hàng, ứng dụng sẽ gửi yêu cầu qua API đến nhà hàng để xử lý đơn hàng.
- Một máy tính bỏ túi có hàm
sqrt(x)
để tính căn bậc hai cũng là API, cho phép bạn gọi hàmsqrt(16)
và nhận kết quả là 4.
API Làm Việc Như Thế Nào?
- Request (Yêu cầu): Là thông tin mà một ứng dụng gửi đến API. Một yêu cầu thường bao gồm:
- Phương thức HTTP: GET, POST, PUT, DELETE.
- URL: Địa chỉ API cần gọi.
- Headers: Thông tin bổ sung như mã xác thực.
- Body: Dữ liệu cần gửi (nếu có).
Ví dụ, lấy giá Bitcoin qua Gemini API:
GET /v1/pubticker/btcusd HTTP/1.1 Host: api.gemini.com
- Response (Phản hồi): Là dữ liệu API trả về, bao gồm:
- Status Code: Kết quả của yêu cầu, như 200 (thành công), 404 (không tìm thấy), 500 (lỗi máy chủ).
- Body: Dữ liệu chính từ API.
Ví dụ, phản hồi của Gemini API:
{ "last": "45000.00", "ask": "45010.00", "bid": "44990.00" }
Các Loại API Phổ Biến
- Web API: Trao đổi dữ liệu qua Internet (VD: API của Google Maps).
- Library API: Các hàm hoặc phương thức trong thư viện (VD: Math API trong Python).
- Operating System API: Giao tiếp với hệ điều hành (VD: Windows API).
- Database API: Truy vấn cơ sở dữ liệu (VD: SQL API).
Tìm Hiểu API RESTful
REST (Representational State Transfer) là chuẩn phổ biến để xây dựng API. Các thao tác chính:
- GET: Lấy dữ liệu (VD: Lấy giá Bitcoin).
- POST: Gửi dữ liệu (VD: Thêm sản phẩm vào giỏ hàng).
- PUT: Cập nhật dữ liệu (VD: Cập nhật hồ sơ cá nhân).
- DELETE: Xóa dữ liệu (VD: Xóa bài đăng).
Ví Dụ Thực Tế: API Gemini
Gemini cung cấp API để giao dịch và lấy dữ liệu tiền điện tử. Ví dụ:
fetch('https://api.gemini.com/v1/pubticker/btcusd')
.then(response => response.json())
.then(data => console.log(`Giá BTC: $${data.last}`));
Demo Trang Web Sử Dụng API Gemini
Bước 1: Giới Thiệu API Gemini
API này hỗ trợ tạo nội dung tự động bằng AI, ứng dụng mạnh mẽ trong xử lý ngôn ngữ tự nhiên.
Lấy API Key tại đây: https://aistudio.google.com/apikey
Bước 2: Code Demo
HTML + JavaScript:
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Google Generative Language API với Markdown</title>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
margin: 20px;
}
textarea {
width: 100%;
padding: 10px;
margin-bottom: 10px;
font-size: 16px;
}
button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
}
#output {
margin-top: 20px;
padding: 15px;
border: 1px solid #ddd;
border-radius: 5px;
background-color: #f9f9f9;
}
</style>
</head>
<body>
<h1>Demo Google Generative Language API</h1>
<textarea id="inputText" placeholder="Nhập nội dung để API xử lý..." rows="5"></textarea>
<br>
<button onclick="fetchGeneratedContent()">Gửi tới API</button>
<div id="output">Phản hồi sẽ hiển thị ở đây...</div>
<script>
async function fetchGeneratedContent() {
const apiKey = "YOUR_API_KEY"; // Thay bằng API Key của bạn
const apiUrl = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent?key=${apiKey}`;
const inputText = document.getElementById("inputText").value;
const payload = {
contents: [
{
role: "user",
parts: [
{
text: inputText
}
]
}
],
generationConfig: {
temperature: 1,
topK: 40,
topP: 0.95,
maxOutputTokens: 8192,
responseMimeType: "text/plain"
}
};
try {
const response = await fetch(apiUrl, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(payload)
});
if (!response.ok) {
throw new Error(`Lỗi: ${response.status}`);
}
const data = await response.json();
const markdownContent = data.candidates[0].content.parts[0].text;
const htmlContent = marked.parse(markdownContent);
document.getElementById("output").innerHTML = htmlContent;
} catch (error) {
document.getElementById("output").innerText = `Không thể tải dữ liệu. Lỗi: ${error.message}`;
}
}
</script>
</body>
</html>
Quảng Cáo Hosting từ TopCloud.vn
Bạn đang tìm kiếm Hosting cPanel chất lượng cao, giá rẻ? TopCloud.vn mang đến các gói Hosting cPanel chỉ từ 5,900đ/tháng, phù hợp cho mọi nhu cầu từ cá nhân đến doanh nghiệp. Đừng bỏ lỡ cơ hội tối ưu hóa website của bạn với dịch vụ đáng tin cậy từ TopCloud.vn!