πŸ“ νŽ˜μ΄μ§€ λ„€μ΄μ…˜μ„ μœ„ν•œ API μ„€μ •

10_2pangΒ·2023λ…„ 6μ›” 15일
0

βš½οΈνŠΈλŸ¬λΈ”μŠˆνŒ…

λͺ©λ‘ 보기
68/94
post-thumbnail

πŸ‘¨β€πŸ’»Β μ‚¬κ±΄


APIλ₯Ό μ„€κ³„ν• λ•ŒλŠ” 데이터λ₯Ό 효율적으둜 λ°›μ•„μ˜¬μˆ˜μžˆλ„λ‘ ν•˜λŠ”κ²ƒμ΄λΌκ³  μ•Œκ³ μžˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈμΈ‘μ— λ°©λŒ€ν•œ 데이터λ₯Ό λ³΄λ‚΄κ²Œλ˜λ©΄ νš¨μœ¨μ„±μ΄ λ–¨μ–΄μ§ˆμˆ˜μžˆλ‹€κ³  νŒλ‹¨ν•˜μ˜€λ‹€.
κ·Έλž˜μ„œ νŽ˜μ΄μ§•κΈ°λŠ₯을 μΆ”κ°€ν•˜μ—¬ νŠΉμ • 개수의 λ°μ΄ν„°λ§Œ λ°›μ•„μ˜€κΈ° μœ„ν•΄ api/data.js νŒŒμΌμ„ 일뢀 μˆ˜μ •ν•˜κΈ°λ‘œ ν–ˆλ‹€.

βœ…Β ν•΄κ²°


ν•œ νŽ˜μ΄μ§€λ‹Ή 20개의 μ„ μˆ˜λͺ©λ‘μ„ λ°›μ•„μ˜€λ„λ‘ μˆ˜μ •ν•˜μ˜€λ‹€.

import mysql from 'mysql'

export default function handler(req, res) {
  const connection = mysql.createConnection({
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
  })

  connection.connect((err) => {
    if (err) {
      console.error(err)
      res.status(500).json({ error: 'Database connection failed' })
      return
    }
	// μš”μ²­ λ°›μ•„μ˜¨ νŽ˜μ΄μ§€κ°€ μ‘΄μž¬ν•˜λ©΄ κ·ΈνŽ˜μ΄μ§€λ₯Ό μ‚¬μš©ν•˜κ³ , μ•„λ‹ˆλΌλ©΄ 초기 κ°’μœΌλ‘œ 1을 μ„€μ •ν•œλ‹€.
    const page = req.query.page ? Number(req.query.page) : 1
    // μ΅œλŒ€λ‘œ 20λͺ…μ˜ μ„ μˆ˜λ₯Ό λ°›μ•„μ˜¨λ‹€.
    const limit = 20
    // OFFSET 을 ν†΅ν•˜μ—¬, μ›ν•˜λŠ” νŽ˜μ΄μ§€μ˜ μ„ μˆ˜λ₯Ό λ°›μ•„μ˜¬μˆ˜μžˆλ„λ‘ μž‘μ„±ν•˜μ˜€λ‹€.
    let offset = (page - 1) * limit
    if (page === 0) {
      offset = 20
    }

    const query = `SELECT * FROM fm_table LIMIT ${limit} OFFSET ${offset}`
    connection.query(query, (err, result) => {
      if (err) {
        console.error(err)
        res.status(500).json({ error: 'Database query failed' })
        return
      }

      res.status(200).json(result)
    })
  })
}

πŸ’­Β κ°œμ„ 


  • ν•„ν„°λ₯Ό μ–΄λ–»κ²Œ μ μš©ν•˜λŠ”κ²ƒμ΄ νš¨μœ¨μ μΈμ§€λ₯Ό 생각후, api 의 μΈμŠ€ν„΄μŠ€λ₯Ό λΆ„λ¦¬ν•΄μ„œ μ μž¬μ μ†Œμ— μ μš©ν•˜λ„λ‘ 해봐야겠닀.
  • 이λ₯Ό λ°”νƒ•μœΌλ‘œ, ν•œλ²ˆ μ›ν•˜λŠ” 데이터λ₯Ό νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ 톡해 λ°›μ•„μ˜€λŠ”μ§€ ν™•μΈν•΄λ³Όν•„μš”κ°€ μžˆλ‹€.
profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ 개발자 이광렬 μž…λ‹ˆλ‹€ 🌸

0개의 λŒ“κΈ€