Python → Python projekti → Flask REST API
□ Ovo je prvi korak ka backend developeru.
Python projekat – REST API u Flask-u
U ovom projektu napravićemo jednostavan REST API koristeći Python i Flask framework.
API omogućava komunikaciju između aplikacija putem HTTP zahteva:
- GET — čitanje podataka
- POST — dodavanje novih podataka
- PUT — izmena podataka
- DELETE — brisanje podataka
U ovom projektu koristićemo:
- Flask framework
- JSON format
- rad sa rutama (routes)
- osnove backend programiranja
Šta je REST API?
REST API je način komunikacije između klijenta i servera.
- frontend (web ili mobilna aplikacija) šalje zahtev
- backend (Python server) vraća podatke
REST API je osnova modernih web, mobilnih i IoT aplikacija.
Instalacija Flask-a
pip install flask
Primer REST API aplikacije
from flask import Flask, jsonify, request
app = Flask(__name__)
# lista podataka
items = [
{"id": 1, "name": "Laptop"},
{"id": 2, "name": "Telefon"}
]
# pomoćna funkcija za ID
def next_id():
return max(item["id"] for item in items) + 1 if items else 1
# GET - svi podaci
@app.route('/items', methods=['GET'])
def get_items():
return jsonify(items)
# GET - jedan item
@app.route('/items/<int:item_id>', methods=['GET'])
def get_item(item_id):
for item in items:
if item["id"] == item_id:
return jsonify(item)
return jsonify({"error": "Nije pronađeno"}), 404
# POST - dodavanje
@app.route('/items', methods=['POST'])
def add_item():
data = request.json
new_item = {
"id": next_id(),
"name": data.get("name", "Bez imena")
}
items.append(new_item)
return jsonify(new_item), 201
# PUT - izmena
@app.route('/items/<int:item_id>', methods=['PUT'])
def update_item(item_id):
data = request.json
for item in items:
if item["id"] == item_id:
item["name"] = data.get("name", item["name"])
return jsonify(item)
return jsonify({"error": "Nije pronađeno"}), 404
# DELETE - brisanje
@app.route('/items/<int:item_id>', methods=['DELETE'])
def delete_item(item_id):
global items
items = [item for item in items if item["id"] != item_id]
return jsonify({"message": "Obrisano"})
if __name__ == '__main__':
app.run(debug=True)
Kako testirati API?
API možeš testirati na više načina:
- pregledač (GET zahtevi)
- Postman ili Insomnia
- Python (requests biblioteka)
Primer URL-a:
http://127.0.0.1:5000/items
Kako radi ovaj kod?
- Flask() kreira aplikaciju
- @app.route definiše rute (URL-ove)
- jsonify() vraća JSON odgovor
- request.json prima podatke
- metode (GET, POST...) određuju akciju
Svaka ruta predstavlja jednu funkcionalnost API-ja.
Česte greške
- ❌ Pogrešan URL (npr. /item umesto /items)
- ❌ Zaboravljen JSON body u POST/PUT
- ❌ Pogrešan Content-Type (treba application/json)
- ❌ Ne postoji ID koji pokušavaš da menjaš
Mala unapređenja (sledeći korak)
- dodati polja: cena, opis
- validacija podataka
- filtriranje i pretraga
- paginacija (više rezultata)
Šta dalje?
Napredni REST API projekat
Ovo je osnovna verzija API-ja (bez baze podataka).
U naprednom projektu naučićeš:
- rad sa bazom (SQLite)
- organizaciju koda (moduli)
- autentifikaciju korisnika
- pravi backend sistem
Mini izazovi
- Dodaj polje
price - Dodaj pretragu po imenu
- Dodaj endpoint za broj elemenata
Gde se koristi REST API?
- web aplikacije
- mobilne aplikacije
- frontend (React, Vue)
- IoT sistemi