Flask Nedir?
Flask, Python dilinde yazılmış bir mikro web framework'üdür. Hafifliği sayesinde hızlı bir şekilde uygulama geliştirebilirsiniz. RESTful API'ler, istemcilerle veri alışverişi yapmak için sıklıkla kullanılır ve Flask, bunu yaparken ihtiyacınız olan tüm araçları sağlar. Eğer bu terimlere yabancıysanız, telaşlanmayın! Adım adım her şeyi anlatacağım.
1. Flask'ı Kurmak
Flask ile bir REST API geliştirmeye başlamadan önce, bilgisayarınıza Flask’ı kurmanız gerekiyor. Python yüklü olduğuna emin olduktan sonra, terminal veya komut satırına şu komutu girin:
pip install flask
Bu komut, Flask’ı kuracaktır. İşte bu kadar! Flask, sadece birkaç satırda kurulum tamamlanmış olacak. Şimdi rahatça kullanabileceğiz.
2. Flask ile Basit Bir API Oluşturmak
Flask ile ilk adımda çok basit bir API kuracağız. API'nizin temelini oluşturacak olan bu yapı, HTTP isteklerine cevap verecek ve veri döndürecektir. İşte başlıyoruz:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/greeting', methods=['GET'])
def greet():
return jsonify({"message": "Merhaba, Flask API!"})
if __name__ == "__main__":
app.run(debug=True)
Yukarıdaki kodda neler oluyor?
- Flask'ı içeri aktarıyoruz.
- `Flask` nesnesini yaratıyoruz, bu bizim API'mizin temelini oluşturuyor.
- `@app.route` dekoratörü, bir URL'ye (bu örnekte `/api/greeting`) gelen HTTP GET isteklerine karşılık gelir.
- `greet` fonksiyonu, bu isteğe bir JSON cevabı döndürür.
- `jsonify`, Python sözlüklerini JSON formatına dönüştürmemize yarar.
3. API’yi Çalıştırmak
Yukarıdaki kodu bir dosyaya (örneğin `app.py`) kaydettikten sonra terminalden şu komutu girerek çalıştırabilirsiniz:
python app.py
Flask uygulamanız localhost üzerinden çalışacaktır ve tarayıcınızda `http://127.0.0.1:5000/api/greeting` adresini ziyaret ettiğinizde şu cevabı alırsınız:
```json
{"message": "Merhaba, Flask API!"}
```
4. Veri Gönderme ve Alma: POST, PUT, DELETE Yöntemleri
Artık Flask ile temel bir API oluşturduk. Peki, nasıl veri gönderebiliriz? İşte POST, PUT ve DELETE gibi HTTP metodlarını nasıl kullanacağımıza bakalım.
POST Yöntemi ile Veri Gönderme
Bir POST isteği, sunucuya yeni bir kaynak eklemek için kullanılır. Flask'ta bunu şöyle yapıyoruz:
from flask import request
@app.route('/api/user', methods=['POST'])
def create_user():
user_data = request.get_json() # JSON verisini alıyoruz
return jsonify({"message": "Kullanıcı oluşturuldu!", "user": user_data}), 201
Bu fonksiyon, gelen veriyi JSON formatında alır ve kullanıcıya "Kullanıcı oluşturuldu!" mesajını döndürür. Bu örnekte POST isteği ile kullanıcı bilgilerini gönderdiğimizi varsayıyoruz.
PUT Yöntemi ile Veriyi Güncelleme
Bir PUT isteği, var olan veriyi günceller. Örnek olarak, kullanıcı bilgilerini güncellemek için şu kodu kullanabilirsiniz:
@app.route('/api/user/', methods=['PUT'])
def update_user(user_id):
user_data = request.get_json()
return jsonify({"message": f"Kullanıcı {user_id} güncellendi!", "user": user_data}), 200
Bu örnekte, URL parametresi olarak `user_id` alıyoruz ve bu kullanıcıyı güncelliyoruz.
DELETE Yöntemi ile Veri Silme
Bir DELETE isteği, belirli bir kaynağı silmek için kullanılır. Aşağıdaki gibi bir kodla kullanıcıyı silebiliriz:
@app.route('/api/user/', methods=['DELETE'])
def delete_user(user_id):
return jsonify({"message": f"Kullanıcı {user_id} silindi!"}), 200
5. API'yi Test Etmek
API'nizi test etmek için Postman gibi araçları kullanabilirsiniz. Postman, HTTP istekleri gönderip cevapları incelemenizi sağlar. İsterseniz terminalde `curl` komutlarını da kullanabilirsiniz.
6. Sonuç
Flask ile basit bir REST API yapma sürecini adım adım inceledik. Şimdi temel GET, POST, PUT ve DELETE işlemlerini gerçekleştirebilen bir API'niz var. Flask, hızlıca prototip geliştirmek ve küçük projeler yapmak için harika bir seçim. Ancak, üretim ortamına geçmeden önce güvenlik, hata yönetimi ve performans optimizasyonlarına dikkat etmelisiniz.
Flask ile API yaparken işinize yarayacak bazı ipuçları:
- Veritabanı bağlantıları eklemeyi unutmayın! SQLAlchemy gibi bir ORM kullanabilirsiniz.
- API'nizi daha güvenli hale getirmek için JWT ile kimlik doğrulama ekleyebilirsiniz.
- Flask, genişletilebilir bir yapıya sahip olduğundan, ilerleyen zamanlarda yeni özellikler eklemek kolay olacaktır.