RESTful API Nedir?
REST (Representational State Transfer), özellikle web servislerinde kullanılan bir mimaridir. Bu mimari, istemci ve sunucu arasında veri iletimi yapmayı kolaylaştırır ve genellikle HTTP protokolleri üzerinden çalışır. RESTful API’ler, kaynakları (data) HTTP yöntemleriyle (GET, POST, PUT, DELETE) işlemeyi sağlar.
Flask ile bu tür bir API geliştirmek, aslında düşündüğünüz kadar karmaşık değil. Hadi adım adım nasıl bir API oluşturabileceğimize göz atalım.
Adım 1: Flask Kurulum ve Proje Yapısı
Flask’ı kurmak çok basittir. Öncelikle terminal veya komut istemcisine şu komutu yazmalısınız:
pip install Flask
Şimdi basit bir Flask uygulaması oluşturalım:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/greet', methods=['GET'])
def greet():
return jsonify({"message": "Merhaba Flask!"})
if __name__ == '__main__':
app.run(debug=True)
Bu kod parçası, temel bir GET isteğiyle `/api/greet` endpoint'ine ulaşarak, basit bir JSON mesajı döndüren bir API oluşturur.
Adım 2: RESTful Yöntemlerini Kullanmak
Flask ile API geliştirmek, sadece GET isteği yapmakla sınırlı değildir. Bu API’ye veri eklemek ya da veriyi güncellemek için POST ve PUT istekleri de kullanabilirsiniz.
Örneğin, bir kullanıcı eklemek için POST metodunu nasıl kullanacağınızı görelim:
from flask import Flask, request, jsonify
app = Flask(__name__)
users = []
@app.route('/api/users', methods=['POST'])
def add_user():
user_data = request.get_json()
users.append(user_data)
return jsonify({"message": "Kullanıcı başarıyla eklendi!"}), 201
if __name__ == '__main__':
app.run(debug=True)
Bu örnekte, kullanıcılar bir POST isteği ile API’ye ekleniyor. API'den gelen veriler JSON formatında alınıyor ve kullanıcılar listesine ekleniyor.
Adım 3: Veriyi Güncellemek İçin PUT Kullanmak
Veriyi güncellemek için ise PUT metodunu kullanabiliriz. Örneğin, kullanıcı bilgilerini güncellemek için aşağıdaki gibi bir işlem yapabiliriz:
@app.route('/api/users/', methods=['PUT'])
def update_user(user_id):
user_data = request.get_json()
users[user_id] = user_data
return jsonify({"message": "Kullanıcı başarıyla güncellendi!"})
Burada, kullanıcı kimliğiyle birlikte gelen veriyi güncelliyoruz.
Adım 4: Veriyi Silmek İçin DELETE Kullanmak
Son olarak, veriyi silmek için DELETE metodunu kullanabiliriz:
@app.route('/api/users/', methods=['DELETE'])
def delete_user(user_id):
users.pop(user_id)
return jsonify({"message": "Kullanıcı başarıyla silindi!"})
Bu işlem, bir kullanıcıyı siler ve API’ye başarılı bir mesaj döner.
İleri Seviye İpuçları
Artık temel işlemleri öğrendik, ancak bir RESTful API geliştirmek yalnızca bu kadar basit değildir. İşte bazı ileri seviye ipuçları:
- Hata Yönetimi: Her zaman hataları düzgün bir şekilde yönetin. Flask, hata durumlarında size try-except bloklarıyla yardımcı olabilir.
- Authentication (Kimlik Doğrulama): API’nize güvenlik eklemek önemlidir. JSON Web Token (JWT) gibi teknolojilerle kimlik doğrulama eklemeyi unutmayın.
- Veritabanı Kullanımı: Flask’ta SQLAlchemy gibi kütüphaneleri kullanarak verilerinizi bir veritabanına kaydedebilir ve daha etkili bir API geliştirebilirsiniz.
Sonuç
Flask ile RESTful API geliştirmek, temel kavramları öğrendikten sonra oldukça eğlenceli ve öğretici bir deneyim haline gelebilir. İster kişisel projelerinizde kullanın, ister profesyonel işlerde yer verin; Flask size esnek bir yapı sunar. Unutmayın, her API, başarılı bir web uygulamasının temel taşıdır!