Flask Nedir? API Geliştirmeye Nereden Başlamalıyız?
Bir gün, Python ile web geliştirmeye karar verdiğinizde, karşınıza iki seçenek çıkabilir: Django ve Flask. İkisi de popüler, ikisi de güçlü, ancak işinize daha uygun olanı seçmek önemli. Flask, hafif yapısı ve kolay kullanımıyla hızlıca API geliştirmek isteyenlerin gözdesi haline gelmiş bir framework'tür.
Peki, Flask ile API nasıl geliştirilir? Bu yazıda adım adım Flask kullanarak basit bir API uygulaması geliştireceğiz. Hazır mısınız?
Adım 1: Flask Kurulumu
İlk adım, Flask'ı kurmak. Python’un pip paket yöneticisi sayesinde bu işlem oldukça basit. Eğer Python yüklü değilse, önce onu kurmalısınız. Sonrasında terminal veya komut satırına şu komutu girerek Flask'ı kurabilirsiniz:
pip install Flask
Eğer kurulum başarılıysa, terminalde herhangi bir hata mesajı almazsınız ve artık Flask'ı kullanmaya başlayabilirsiniz.
Adım 2: Basit Bir Flask API Oluşturma
Şimdi Flask ile basit bir API oluşturma zamanı! Flask uygulamanızda bir "hello world" API’si oluşturacağız. Aşağıdaki Python kodunu bir dosyaya yapıştırın (örneğin, `app.py` olarak kaydedin):
from flask import Flask
# Flask uygulamamızı başlatıyoruz
app = Flask(__name__)
# Basit bir endpoint tanımlıyoruz
@app.route('/')
def hello_world():
return "Merhaba, Flask API!"
if __name__ == '__main__':
app.run(debug=True)
Bu basit uygulama, kök URL’ye (`/`) gelen her isteğe “Merhaba, Flask API!” mesajını döndürecektir. Uygulamayı başlatmak için terminalde şu komutu çalıştırabilirsiniz:
python app.py
Ve şimdi tarayıcınızda `http://127.0.0.1:5000` adresine giderek "Merhaba, Flask API!" mesajını görebilirsiniz.
Adım 3: Parametreli API Oluşturma
API’niz biraz daha gelişmiş olmalı, değil mi? Parametreler kullanarak dinamik veri almayı öğrenelim. Flask, URL parametrelerini almayı oldukça kolaylaştırıyor. Örneğin, kullanıcıdan bir isim alıp ona göre bir mesaj dönen bir endpoint yapalım:
@app.route('/hello/')
def hello_name(name):
return f"Merhaba, {name}!"
Burada, `
Adım 4: JSON Formatında Veri Göndermek
Bir API'nin çoğu zaman JSON veri döndürdüğünü biliyoruz. Flask’ta bu çok kolay! Örneğin, bir kullanıcı bilgisi döndüren bir API yapalım:
from flask import jsonify
@app.route('/user')
def get_user():
user = {
"ad": "Ahmet",
"yas": 30,
"meslek": "Yazılım Geliştirici"
}
return jsonify(user)
Bu kodu çalıştırdığınızda, `/user` endpoint’ine yapılan istek sonucu şu şekilde bir JSON yanıtı alırsınız:
{
"ad": "Ahmet",
"yas": 30,
"meslek": "Yazılım Geliştirici"
}
Adım 5: Flask API’de HTTP Metodları Kullanma
Gerçek bir API, genellikle çeşitli HTTP metodlarını kullanır: GET, POST, PUT, DELETE… Flask, bu metodları kullanmak için oldukça basit bir yapı sunar. Örneğin, kullanıcı eklemek için POST metodunu kullanalım:
@app.route('/user', methods=['POST'])
def add_user():
user_data = request.get_json()
return jsonify({"message": "Kullanıcı başarıyla eklendi!", "user": user_data}), 201
Bu endpoint, bir JSON veri gönderildiğinde, gelen veriyi ekleyip yanıt olarak bir başarı mesajı dönecektir.
Adım 6: Flask API'yi Test Etmek
Flask API’nizi test etmek için Postman veya Insomnia gibi araçları kullanabilirsiniz. Bu araçlar, API'nize istekler gönderip yanıtları hızlıca görmenizi sağlar.
Ayrıca, Flask'ın test modülünü kullanarak yazdığınız kodları otomatik olarak test etmek de mümkündür. Örneğin, aşağıdaki gibi bir test yazabilirsiniz:
import unittest
class FlaskTestCase(unittest.TestCase):
def setUp(self):
app.config['TESTING'] = True
self.client = app.test_client()
def test_hello_world(self):
response = self.client.get('/')
self.assertEqual(response.data, b'Merhaba, Flask API!')
Sonuç
Flask ile API geliştirmek, Python öğrenmeye yeni başlayanlar için harika bir seçenek. Hafif yapısı, esnekliği ve kullanım kolaylığı sayesinde hızlıca API projeleri geliştirebilirsiniz. Bu yazıda Flask ile basit bir API geliştirmeyi, URL parametreleri kullanmayı, JSON veri döndürmeyi ve HTTP metodlarını nasıl kullanacağınızı öğrendiniz.
Artık API’nizi oluşturma konusunda temel bilgilere sahipsiniz. Flask ile çok daha fazlasını keşfetmeye devam edebilirsiniz. Unutmayın, iyi bir API, iyi bir dokümantasyon ve testlerle birlikte gelir!