Bài viết

🚀 Hướng Dẫn Cấu Hình Swagger Cho Node.js

📌 Giới Thiệu

Swagger là một công cụ mạnh mẽ giúp tạo tài liệu API tự động cho các ứng dụng web. Bài viết này sẽ hướng dẫn bạn cách tích hợp Swagger vào một ứng dụng Node.js sử dụng Express.

🛠️ Bước 1: Cài Đặt Các Gói Cần Thiết

Trước tiên, hãy cài đặt các gói cần thiết bằng lệnh sau:

1
npm install swagger-jsdoc swagger-ui-express

Để hỗ trợ tự động restart server khi có thay đổi, cài đặt nodemon:

1
npm install --save-dev nodemon

Sau đó, chỉnh sửa file package.json để thêm script chạy ứng dụng:

1
2
3
4
"scripts": {
  "start": "node app.js",
  "dev": "nodemon app.js"
}

⚙️ Bước 2: Cấu Hình Swagger

Tạo một thư mục setups và thêm file swaggerSetup.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const swaggerJsDoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');

const swaggerOptions = {
  swaggerDefinition: {
    openapi: '3.0.0',
    info: {
      title: '📘 API Documentation',
      version: '1.0.0',
      description: '📄 Tài liệu API cho ứng dụng Node.js với Express',
    },
    servers: [
      {
        url: 'http://localhost:3000',
        description: '🌐 Local server',
      },
    ],
  },
  apis: ['./routes/*.js'], // Định nghĩa nơi Swagger tìm kiếm các comment
};

const swaggerDocs = swaggerJsDoc(swaggerOptions);

const setupSwagger = (app) => {
  app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
};

module.exports = setupSwagger;

🔗 Bước 3: Tích Hợp Swagger vào Express

Mở file app.js và chỉnh sửa như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const express = require('express');
const setupSwagger = require('./setups/swaggerSetup');

const app = express();
const PORT = 3000;

// Middleware
app.use(express.json());

// Cấu hình Swagger
setupSwagger(app);

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

✏️ Bước 4: Viết Tài Liệu API

Mở file routes/users.js và thêm comment Swagger:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const express = require('express');
const router = express.Router();

/**
 * @swagger
 * /users:
 *   get:
 *     summary: 📌 Lấy danh sách người dùng
 *     description: 🧑‍💻 API này trả về danh sách người dùng
 *     responses:
 *       200:
 *         description: ✅ Thành công
 *         content:
 *           application/json:
 *             schema:
 *               type: array
 *               items:
 *                 type: object
 *                 properties:
 *                   id:
 *                     type: integer
 *                     example: 1
 *                   name:
 *                     type: string
 *                     example: "Nguyễn Văn A"
 */
router.get('/users', (req, res) => {
  res.json([{ id: 1, name: 'Nguyễn Văn A' }]);
});

module.exports = router;

▶️ Bước 5: Chạy Ứng Dụng

Chạy ứng dụng bằng lệnh:

1
npm run dev

Sau đó, mở trình duyệt và truy cập 🔗 http://localhost:3000/api-docs để xem tài liệu API do Swagger tạo ra.


🎯 Tổng Kết

Bạn đã hoàn thành việc tích hợp Swagger vào ứng dụng Node.js sử dụng Express. Bây giờ bạn có thể dễ dàng viết tài liệu API và chia sẻ với nhóm phát triển một cách trực quan và chuyên nghiệp! 🚀

Bài viết này được cấp phép bởi tác giả theo giấy phép CC BY 4.0 .