+1

Khám phá thế giới API và hướng dẫn xây dựng API riêng

API (Giao diện lập trình ứng dụng) giống như "kết nối ẩn" của thế giới kỹ thuật số, cho phép các ứng dụng, dịch vụ và hệ thống khác nhau giao tiếp với nhau. Nếu không có chúng, các nền tảng như Facebook, Twitter và Google Maps sẽ không thể chia sẻ dữ liệu của họ với các ứng dụng bên thứ ba - đồng nghĩa với việc không có nguồn cấp dữ liệu Instagram trong ứng dụng yêu thích của bạn hoặc tích hợp Google Maps với dịch vụ giao đồ ăn.

API cho phép các nhà phát triển tạo ra các giải pháp mạnh mẽ, có khả năng mở rộng và hiệu quả. Bài viết này sẽ giúp bạn tìm hiểu API là gì, tại sao chúng quan trọng và cách xây dựng một API chức năng từ đầu. Cho dù bạn đang muốn thêm chức năng vào ứng dụng của mình, tạo ra một sản phẩm sáng tạo hay hiểu về giao tiếp backend, hướng dẫn này đều bao gồm tất cả.

API thực chất là gì?

Về cốt lõi, API là một tập hợp các quy tắc cho phép các ứng dụng giao tiếp với nhau. Khi bạn mở một ứng dụng di động hiển thị dự báo thời tiết địa phương, ứng dụng đó có thể sử dụng API để thu thập dữ liệu thời tiết theo thời gian thực từ máy chủ bên thứ ba.

Hãy nghĩ về API như một người phục vụ tại nhà hàng: bạn (khách hàng) gọi món ăn và người phục vụ nhận đơn đặt hàng của bạn đến nhà bếp (máy chủ), lấy thức ăn của bạn và mang lại cho bạn.

Trong ngữ cảnh phần mềm:

  • Khách hàng (Client) chính là ứng dụng hoặc dịch vụ của bạn.
  • Máy chủ (Server) là nguồn dữ liệu hoặc hệ thống backend.
  • Yêu cầu (Request) là thông tin hoặc hành động bạn đang yêu cầu API (ví dụ: dữ liệu người dùng, giao dịch).
  • Phản hồi (Response) là dữ liệu hoặc kết quả được trả về từ máy chủ.

Ví dụ:

Dưới đây là một ví dụ JavaScript đơn giản sử dụng fetch để gọi API và ghi nhật ký phản hồi vào console:

fetch('https://api.example.com/user')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

Trong ví dụ này, chúng ta đang gửi yêu cầu đến https://api.example.com/user để yêu cầu dữ liệu người dùng. API xử lý yêu cầu này và trả về phản hồi, mà chúng ta xử lý trong khối .then.

Các loại API phổ biến

Việc hiểu rõ các loại API khác nhau có thể giúp bạn chọn loại phù hợp nhất với nhu cầu của mình:

  • API REST (Representational State Transfer) được sử dụng rộng rãi vì chúng hiệu quả, sử dụng các phương thức HTTP tiêu chuẩn và có thể hoạt động trên hầu hết mọi giao thức.
  • API SOAP (Simple Object Access Protocol) có cấu trúc cao và tuân theo các tiêu chuẩn nghiêm ngặt, khiến nó trở nên phổ biến đối với các ứng dụng doanh nghiệp cần bảo mật mạnh mẽ.
  • API GraphQL cho phép bạn chỉ yêu cầu dữ liệu bạn cần trong một lần gọi duy nhất, lý tưởng cho các ứng dụng phức tạp cần tìm nạp dữ liệu hiệu quả.

Xây dựng API đơn giản với Node.js và Express

Chúng ta hãy tạo một API đơn giản bằng Node.js và Express. Ví dụ của chúng ta sẽ là một API cung cấp thông tin về các siêu anh hùng.

Bước 1: Thiết lập dự án

Tạo một thư mục dự án mới, khởi tạo Node.js và cài đặt Express.

mkdir superhero-api
cd superhero-api
npm init -y
npm install express

Bước 2: Lập trình API

Bên trong thư mục dự án của bạn, hãy tạo một tệp index.js và thêm đoạn mã sau:

// index.js
const express = require('express');
const app = express();
const PORT = 3000;

const heroes = [
  { id: 1, name: 'Spider-Man', power: 'Web-slinging' },
  { id: 2, name: 'Iron Man', power: 'High-tech armor' },
  { id: 3, name: 'Thor', power: 'God of Thunder' },
];

app.get('/heroes', (req, res) => {
  res.json(heroes);
});

app.get('/heroes/:id', (req, res) => {
  const hero = heroes.find(h => h.id === parseInt(req.params.id));
  hero ? res.json(hero) : res.status(404).send('Hero not found');
});

app.listen(PORT, () => console.log(`API running on http://localhost:${PORT}`));

Bước 3: Chạy máy chủ

Khởi động máy chủ bằng cách chạy:

node index.js

Bây giờ, hãy điều hướng đến http://localhost:3000/heroes trong trình duyệt của bạn để xem dữ liệu. Bạn đã tạo thành công một API có thể trả về thông tin siêu anh hùng!

Kiểm tra API của bạn với Postman

Postman là một công cụ tuyệt vời để kiểm tra và gỡ lỗi API. Bạn có thể mô phỏng các yêu cầu, xem phản hồi và phân tích hành vi của API.

  • Đầu tiên, hãy cài đặt Postman nếu bạn chưa có.
  • Sau đó, nhập endpoint của bạn http://localhost:3000/heroes và chọn GET.
  • Cuối cùng, gửi yêu cầu để xem danh sách các siêu anh hùng.

Mẹo hữu ích để làm việc với API

Hãy sử dụng Mã trạng thái một cách khôn ngoan. Các mã trạng thái HTTP tiêu chuẩn (ví dụ: 200 OK, 404 Not Found, 500 Server Error) giúp cải thiện khả năng hiểu và gỡ lỗi của máy khách.

Tài liệu API rõ ràng là điều cần thiết cho các nhà phát triển và các bên liên quan. Các công cụ như Swagger hoặc Postman rất tốt để tạo và chia sẻ tài liệu.

Thêm bảo mật bằng xác thực. Hầu hết các API yêu cầu xác thực để bảo vệ dữ liệu và hạn chế quyền truy cập. Hãy cân nhắc sử dụng JSON Web Tokens (JWT) để bảo mật API.

Nâng cao: Thêm xác thực cho API

Hãy tăng cường bảo mật bằng cách thêm xác thực dựa trên mã thông báo. Ví dụ này sử dụng JWT để bảo vệ các điểm cuối.

npm install jsonwebtoken

Sau đó, cập nhật mã của bạn với middleware xác thực cơ bản:

const jwt = require('jsonwebtoken');
const secretKey = 'your-secret-key';

app.use((req, res, next) => {
  const token = req.headers['authorization'];
  if (token) {
    jwt.verify(token, secretKey, (err, decoded) => {
      if (err) {
        return res.status(403).send('Invalid token');
      } else {
        req.user = decoded;
        next();
      }
    });
  } else {
    res.status(403).send('No token provided');
  }
});

Với đoạn mã này, API của bạn hiện yêu cầu mã thông báo để truy cập các endpoint nhất định, đảm bảo thêm bảo mật.

Kết luận

API là các trình kết nối giúp các tương tác kỹ thuật số diễn ra suôn sẻ và giàu dữ liệu. Cho dù bạn đang xây dựng hay sử dụng chúng, việc hiểu API là một kỹ năng vô giá mở ra vô số khả năng.

Hy vọng bạn cảm thấy hữu ích sau khi đọc xong bài viết này!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí