🚀 REST API with Flask - Build a complete RESTful API backend. Advanced project!
📚 Concepts Covered:
• Flask framework
• REST principles
• CRUD operations
• JSON responses
• Status codes
• API endpoints
✨ Features:
• User management
• GET/POST/PUT/DELETE
• Data validation
• Error handling
• JSON responses
💡 Installation: pip install flask
python
# Flask REST API (Simplified Demo)
class UserAPI:
def __init__(self):
self.users = [
{"id": 1, "name": "Aung Kyaw", "email": "aung@example.com"},
{"id": 2, "name": "Su Su", "email": "susu@example.com"}
]
self.next_id = 3
def get_all_users(self):
"""GET /api/users"""
return {"status": "success", "data": self.users, "count": len(self.users)}
def get_user(self, user_id):
"""GET /api/users/:id"""
user = next((u for u in self.users if u["id"] == user_id), None)
if user:
return {"status": "success", "data": user}
return {"status": "error", "message": "User not found"}, 404
def create_user(self, name, email):
"""POST /api/users"""
new_user = {"id": self.next_id, "name": name, "email": email}
self.users.append(new_user)
self.next_id += 1
return {"status": "success", "data": new_user}, 201
def delete_user(self, user_id):
"""DELETE /api/users/:id"""
self.users = [u for u in self.users if u["id"] != user_id]
return {"status": "success", "message": "User deleted"}
# Demo API
api = UserAPI()
print("=== REST API Demo ===\n")
print("GET /api/users:")
print(api.get_all_users())
print("\nGET /api/users/1:")
print(api.get_user(1))
print("\nPOST /api/users:")
print(api.create_user("Min Min", "minmin@example.com"))
print("\nGET /api/users (after POST):")
print(api.get_all_users())You should see
=== REST API Demo === GET /api/users: {'status': 'success', 'data': [{'id': 1, 'name': 'Aung Kyaw', 'email': 'aung@example.com'}, {'id': 2, 'name': 'Su Su', 'email': 'susu@example.com'}], 'count': 2} GET /api/users/1: {'status': 'success', 'data': {'id': 1, 'name': 'Aung Kyaw', 'email': 'aung@example.com'}} POST /api/users: ({'status': 'success', 'data': {'id': 3, 'name': 'Min Min', 'email': 'minmin@example.com'}}, 201) GET /api/users (after POST): {'status': 'success', 'data': [{'id': 1, 'name': 'Aung Kyaw', 'email': 'aung@example.com'}, {'id': 2, 'name': 'Su Su', 'email': 'susu@example.com'}, {'id': 3, 'name': 'Min Min', 'email': 'minmin@example.com'}], 'count': 3}