<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rameez Kureshi</title>
    <description>The latest articles on DEV Community by Rameez Kureshi (@rameez_kureshi_61306289af).</description>
    <link>https://dev.to/rameez_kureshi_61306289af</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4214435%2F6c4f5087-dd75-48cd-bd68-9cc3ddfe4432.png</url>
      <title>DEV Community: Rameez Kureshi</title>
      <link>https://dev.to/rameez_kureshi_61306289af</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rameez_kureshi_61306289af"/>
    <language>en</language>
    <item>
      <title>Building a Clean REST API with Node.js and Express</title>
      <dc:creator>Rameez Kureshi</dc:creator>
      <pubDate>Thu, 29 Oct 2026 06:11:57 +0000</pubDate>
      <link>https://dev.to/rameez_kureshi_61306289af/building-a-clean-rest-api-with-nodejs-and-express-1m4</link>
      <guid>https://dev.to/rameez_kureshi_61306289af/building-a-clean-rest-api-with-nodejs-and-express-1m4</guid>
      <description>&lt;p&gt;Building REST APIs is one of the most practical skills in backend development. Here’s a clean, minimal approach using Node.js and Express that I use as my starting point for most projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup&lt;/strong&gt;&lt;br&gt;
bash&lt;br&gt;
mkdir rest-api &amp;amp;&amp;amp; cd rest-api&lt;br&gt;
npm init -y&lt;br&gt;
npm install express&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Structure&lt;/strong&gt;&lt;br&gt;
rest-api/&lt;br&gt;
├── server.js&lt;br&gt;
├── routes/&lt;br&gt;
│   └── users.js&lt;br&gt;
└── middleware/&lt;br&gt;
    └── errorHandler.js&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Server&lt;/strong&gt;&lt;br&gt;
const express = require('express');&lt;br&gt;
const userRoutes = require('./routes/users');&lt;br&gt;
const errorHandler = require('./middleware/errorHandler');&lt;/p&gt;

&lt;p&gt;const app = express();&lt;br&gt;
const PORT = process.env.PORT || 3000;&lt;/p&gt;

&lt;p&gt;app.use(express.json());&lt;br&gt;
app.use('/api/users', userRoutes);&lt;br&gt;
app.use(errorHandler);&lt;/p&gt;

&lt;p&gt;app.listen(PORT, () =&amp;gt; {&lt;br&gt;
    console.log(&lt;code&gt;Server running on port ${PORT}&lt;/code&gt;);&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Routes with Validation&lt;/strong&gt;&lt;br&gt;
const express = require('express');&lt;br&gt;
const router = express.Router();&lt;/p&gt;

&lt;p&gt;let users = [];&lt;br&gt;
let nextId = 1;&lt;/p&gt;

&lt;p&gt;router.get('/', (req, res) =&amp;gt; {&lt;br&gt;
    const { role } = req.query;&lt;br&gt;
    const filtered = role &lt;br&gt;
        ? users.filter(u =&amp;gt; u.role === role) &lt;br&gt;
        : users;&lt;br&gt;
    res.json(filtered);&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;router.get('/:id', (req, res) =&amp;gt; {&lt;br&gt;
    const user = users.find(u =&amp;gt; u.id === parseInt(req.params.id));&lt;br&gt;
    if (!user) return res.status(404).json({ error: 'User not found' });&lt;br&gt;
    res.json(user);&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;router.post('/', (req, res) =&amp;gt; {&lt;br&gt;
    const { name, email, role } = req.body;&lt;br&gt;
    if (!name || !email) {&lt;br&gt;
        return res.status(400).json({ error: 'Name and email are required' });&lt;br&gt;
    }&lt;br&gt;
    const user = { id: nextId++, name, email, role: role || 'user' };&lt;br&gt;
    users.push(user);&lt;br&gt;
    res.status(201).json(user);&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;router.put('/:id', (req, res) =&amp;gt; {&lt;br&gt;
    const user = users.find(u =&amp;gt; u.id === parseInt(req.params.id));&lt;br&gt;
    if (!user) return res.status(404).json({ error: 'User not found' });&lt;br&gt;
    Object.assign(user, req.body);&lt;br&gt;
    res.json(user);&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;router.delete('/:id', (req, res) =&amp;gt; {&lt;br&gt;
    const index = users.findIndex(u =&amp;gt; u.id === parseInt(req.params.id));&lt;br&gt;
    if (index === -1) return res.status(404).json({ error: 'User not found' });&lt;br&gt;
    users.splice(index, 1);&lt;br&gt;
    res.status(204).send();&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;module.exports = router;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error Handling Middleware&lt;/strong&gt;&lt;br&gt;
const errorHandler = (err, req, res, next) =&amp;gt; {&lt;br&gt;
    console.error(err.stack);&lt;br&gt;
    res.status(err.status || 500).json({&lt;br&gt;
        error: err.message || 'Internal server error'&lt;br&gt;
    });&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;module.exports = errorHandler;&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>api</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
