Backend End Web Development â
Backend Web Development āļāļ·āļāļāļēāļĢāļāļąāļāļāļēāđāļĨāļ°āļāļđāđāļĨāļŠāđāļ§āļāļŦāļĨāļąāļāļāļāļāđāļ§āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļ āļāļķāđāļāļĢāļ§āļĄāļāļķāļāļāļēāļĢāļāļąāļāļāļēāļĢāļāļąāļāļāļēāļāļāđāļāļĄāļđāļĨ, āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ, āļāļēāļĢāļŠāļĢāđāļēāļ API, āļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļĢāļĢāļąāļāļŠāđāļāļāđāļāļĄāļđāļĨ āđāļĨāļ°āļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ āļŠāđāļ§āļāļāļāļ Backend āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļĄāļāļāđāļŦāđāļāđāļāđāđāļāļĒāļāļĢāļāļāļēāļāļāļđāđāđāļāđ āđāļāđāļĄāļĩāļāļāļāļēāļāļŠāļģāļāļąāļāđāļāļāļēāļĢāļāļģāđāļŦāđāđāļ§āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļģāļāļēāļāđāļāđāļāļĒāđāļēāļāļāļđāļāļāđāļāļāđāļĨāļ°āļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
āļŠāđāļ§āļāļāļĢāļ°āļāļāļāļŦāļĨāļąāļāļāļāļ Backend Web Development â
1. āđāļāļīāļĢāđāļāđāļ§āļāļĢāđ (Server) â
āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļ·āļāđāļāļĢāļ·āđāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļŦāļĢāļ·āļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāđāļŦāđāļāļĢāļīāļāļēāļĢāļāđāļēāļ āđ āđāļāđāļ āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāđāļāļĄāļđāļĨ āļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļ āđāļĨāļ°āļāļēāļĢāļŠāđāļāļāđāļāļĄāļđāļĨāļĢāļ°āļŦāļ§āđāļēāļāđāļāļĨāđāļāđāļāļāđ (client) āđāļĨāļ°āđāļāļīāļĢāđāļāđāļ§āļāļĢāđ
2. āļāļēāļāļāđāļāļĄāļđāļĨ (Database) â
āļāļēāļāļāđāļāļĄāļđāļĨāđāļāđāđāļāļāļēāļĢāđāļāđāļāļĢāļąāļāļĐāļēāđāļĨāļ°āļāļąāļāļāļēāļĢāļāđāļāļĄāļđāļĨāļāļĩāđāļāļģāđāļāđāļāļŠāļģāļŦāļĢāļąāļāđāļ§āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļ āđāļāđāļ āļāđāļāļĄāļđāļĨāļāļđāđāđāļāđ, āļĢāļēāļĒāļāļēāļĢāļŠāļīāļāļāđāļē, āļāđāļāļĄāļđāļĨāļāļēāļĢāļŠāļąāđāļāļāļ·āđāļ āļŊāļĨāļŊ āļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļīāļĒāļĄāđāļāđ āđāļāđāđāļāđ MySQL, PostgreSQL, MongoDB āđāļĨāļ° SQLite
3. āļāļēāļĢāļŠāļĢāđāļēāļāđāļĨāļ°āļāļąāļāļāļēāļĢ API (Application Programming Interface) â
API āđāļāđāđāļāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļĢāļ°āļŦāļ§āđāļēāļāđāļāļĨāđāļāđāļāļāđāđāļĨāļ°āđāļāļīāļĢāđāļāđāļ§āļāļĢāđ āđāļāļĒāļāļąāđāļ§āđāļāļāļ°āđāļāđ RESTful API āļŦāļĢāļ·āļ GraphQL āđāļāļāļēāļĢāļĢāļąāļāļŠāđāļāļāđāļāļĄāļđāļĨ
4. āļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļĢāļĢāļąāļāļŠāđāļāļāđāļāļĄāļđāļĨ (HTTP Request and Response) â
āļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļĢāļĢāļąāļāļŠāđāļāļāđāļāļĄāļđāļĨāļĢāļ°āļŦāļ§āđāļēāļāđāļāļĨāđāļāđāļāļāđāđāļĨāļ°āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāđāļēāļāđāļāļĢāđāļāļāļāļĨ HTTP (HyperText Transfer Protocol)
5. āļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ (Security) â
āļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āļāļēāļĢāļāđāļāļāļāļąāļāļāļēāļĢāđāļāļĄāļāļĩ āđāļāđāļ āļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠāļāđāļāļĄāļđāļĨ, āļāļēāļĢāđāļāđ HTTPS, āļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļĢāļĒāļ·āļāļĒāļąāļāļāļąāļ§āļāļāđāļĨāļ°āļāļēāļĢāļāļāļļāļāļēāļ
āđāļāļāđāļāđāļĨāļĒāļĩāđāļĨāļ°āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāđāļāđāđāļāļāļēāļĢāļāļąāļāļāļē Backend â
1. āļ āļēāļĐāļēāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ â
- JavaScript (Node.js): āđāļāđāļāļ āļēāļĐāļēāļĒāļāļāļāļīāļĒāļĄāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļāļē Backend āđāļāļĒāđāļāļāļēāļ°āđāļĄāļ·āđāļāđāļāđāļĢāđāļ§āļĄāļāļąāļ Node.js
- Python (Django, Flask): āļ āļēāļĐāļēāļāļĩāđāļāđāļēāļāļāđāļēāļĒāđāļĨāļ°āļĄāļĩāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļĩāđāļāļĢāļāļāļĨāļąāļ
- Ruby (Ruby on Rails): āļĄāļĩāļāļ§āļēāļĄāļĒāļ·āļāļŦāļĒāļļāđāļāđāļĨāļ°āļāđāļēāļĒāļāđāļāļāļēāļĢāļāļąāļāļāļē
- Java (Spring Boot): āđāļāđāđāļāļāļāļāđāļāļĢāđāļŦāļāđāđāļĨāļ°āļĄāļĩāļāļ§āļēāļĄāđāļŠāļāļĩāļĒāļĢ
- PHP (Laravel): āļāļīāļĒāļĄāđāļāđāđāļāļāļēāļĢāļāļąāļāļāļēāđāļ§āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļ
2. āļāļēāļāļāđāļāļĄāļđāļĨ â
- SQL Databases: āđāļāđāļ MySQL, PostgreSQL, SQLite
- NoSQL Databases: āđāļāđāļ MongoDB, Cassandra, Firebase
3. āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļĨāļ°āđāļāļĨāļāļāļāļĢāđāļĄ â
- Node.js: āļĢāļąāļ JavaScript āļāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ
- Django: āđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļāļ Python
- Flask: āđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļāļ Python
- Express.js: āđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļāļ Node.js
- Spring Boot: āđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļāļ Java
- Ruby on Rails: āđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļāļ Ruby
- Laravel: āđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļāļ PHP
4. āļāļēāļĢāļŠāļĢāđāļēāļ API â
- RESTful API: āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļāļĩāđāđāļāđāđāļāļāļēāļĢāļŠāļĢāđāļēāļ API āļāļĩāđāļĄāļĩāļāļ§āļēāļĄāļĒāļ·āļāļŦāļĒāļļāđāļ
- GraphQL: āļ āļēāļĐāļēāđāļāļāļēāļĢāļŠāļāļāļāļēāļĄāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāļāļ§āļēāļĄāļĒāļ·āļāļŦāļĒāļļāđāļāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāđāļāļāļāļēāļĢāđāļāđāđāļāļāļēāļ°āđāļāļēāļ°āļāļ
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāļŠāļĢāđāļēāļ Backend āļāđāļ§āļĒ Node.js āđāļĨāļ° Express â
āļāļēāļĢāļāļīāļāļāļąāđāļ Node.js āđāļĨāļ° Express â
mkdir my-backend-app
cd my-backend-app
npm init -y
npm install express
āļŠāļĢāđāļēāļāđāļāļĨāđ index.js
â
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
āļĢāļąāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ â
node index.js
āļāļēāļĢāļŠāļĢāđāļēāļ API āđāļāļ·āđāļāļāļāđāļ â
const express = require('express');
const app = express();
const port = 3000;
// Middleware āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļāļēāļĢ JSON
app.use(express.json());
// API āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļāļđāđāđāļāđ
app.get('/api/users', (req, res) => {
const users = [
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Jane Doe' }
];
res.json(users);
});
// API āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāļāļđāđāđāļāđāđāļŦāļĄāđ
app.post('/api/users', (req, res) => {
const newUser = req.body;
// āđāļāļīāđāļĄāļāļđāđāđāļāđāđāļŦāļĄāđāđāļāđāļēāļŠāļđāđāļāļēāļāļāđāļāļĄāļđāļĨ (āļāļąāļ§āļāļĒāđāļēāļ)
res.status(201).json(newUser);
});
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
āļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļāļąāļāļāļēāļāļāđāļāļĄāļđāļĨ â
āļāļēāļĢāļāļīāļāļāļąāđāļāđāļĨāļāļĢāļēāļĢāļĩāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļāļēāļāļāđāļāļĄāļđāļĨ (āđāļāđāļ MongoDB) â
npm install mongoose
āļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļĨāļ°āđāļāđ MongoDB â
const express = require('express');
const mongoose = require('mongoose');
const app = express();
const port = 3000;
app.use(express.json());
// āļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļāļąāļ MongoDB
mongoose.connect('mongodb://localhost:27017/mydatabase', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', () => {
console.log('Connected to MongoDB');
});
// āļŠāļĢāđāļēāļ Schema āđāļĨāļ° Model
const userSchema = new mongoose.Schema({
name: String,
email: String,
});
const User = mongoose.model('User', userSchema);
// API āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļāļđāđāđāļāđ
app.get('/api/users', async (req, res) => {
try {
const users = await User.find();
res.json(users);
} catch (err) {
res.status(500).json({ message: err.message });
}
});
// API āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāļāļđāđāđāļāđāđāļŦāļĄāđ
app.post('/api/users', async (req, res) => {
const user = new User({
name: req.body.name,
email: req.body.email,
});
try {
const newUser = await user.save();
res.status(201).json(newUser);
} catch (err) {
res.status(400).json({ message: err.message });
}
});
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
Backend Web Development āđāļāđāļāļŠāđāļ§āļāļŠāļģāļāļąāļāđāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļ§āđāļāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļĢāļāļāļĢāļąāļāļāļēāļĢāđāļāđāļāļēāļāđāļāļŦāļĨāļēāļĒāļŠāļāļēāļāļāļēāļĢāļāđ āļāļēāļĢāđāļāđāļēāđāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļŠāđāļ§āļ Backend āļāđāļ§āļĒāđāļŦāđāļāļąāļāļāļąāļāļāļēāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĩāđāļĄāļĩāļāļ§āļēāļĄāđāļŠāļāļĩāļĒāļĢāđāļĨāļ°āļāļĨāļāļāļ āļąāļĒāđāļāđ