Flask Nedir?
Flask, Python programlama dili ile yazılmış bir web framework'üdür. Çok hafif, hızlı ve minimal bir yapıya sahiptir. Flask, geliştiricilere basit ama özelleştirilebilir bir yapı sunarak hızlıca projeler geliştirmelerine olanak tanır. Flask, mikro bir framework olarak bilinir çünkü sadece en temel özellikleri içerir, geri kalan her şey için dış kütüphaneler kullanabilirsiniz.
REST (Representational State Transfer), internet üzerindeki verilerin taşınması ve yönetilmesi için kullanılan bir mimari yaklaşımdır. REST API ise bu yapıyı kullanarak verileri bir istemci ile sunucu arasında iletmek için kullanılan bir arayüzdür. API'ler, özellikle veri alışverişi ve uygulama iletişimi için oldukça önemlidir.
Flask ile Basit Bir REST API Oluşturma
Adım 1: Flask'ı Kurun
Öncelikle bilgisayarınızda Flask'ı kurmamız gerekiyor. Eğer Python yüklü değilse, önce Python'u indirip kurduğunuzdan emin olun. Sonrasında terminal veya komut istemcisini açarak şu komutu çalıştırarak Flask'ı kurabilirsiniz:
pip install flaskAdım 2: Flask Uygulamasını Başlatın
Flask kurulumunu tamamladıktan sonra, bir Python dosyası oluşturalım. Bu dosya, bizim API'mizin merkezi olacak. Adını `app.py` koyabilirsiniz. Şimdi Flask'ı içe aktaralım ve basit bir uygulama başlatalım:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Merhaba Dünya!'
if __name__ == '__main__':
app.run(debug=True)
Bu kodu çalıştırdığınızda, `localhost:5000` adresine gittiğinizde "Merhaba Dünya!" mesajını alacaksınız.
Adım 3: REST API Endpoints Ekleyin
Şimdi Flask'a birkaç REST API endpoint’i ekleyelim. Mesela, bir kullanıcıdan veri alıp geri dönen bir endpoint oluşturalım. Bu noktada `GET` ve `POST` metodlarını kullanacağız.
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api/user', methods=['GET'])
def get_user():
user = {"name": "Ahmet", "age": 30}
return jsonify(user)
@app.route('/api/user', methods=['POST'])
def create_user():
data = request.get_json()
user_name = data.get('name')
user_age = data.get('age')
return jsonify({"message": f"User {user_name} created, age {user_age}!"})
if __name__ == '__main__':
app.run(debug=True)
Bu kodda `/api/user` adresinde iki farklı endpoint oluşturduk:
- GET metodu, hardcoded bir kullanıcıyı döndürecek.
- POST metodu ise JSON formatında bir kullanıcı verisi alacak ve bir mesaj döndürecek.
Adım 4: API Testi
API'mizi test etmek için Postman veya Insomnia gibi bir API test aracını kullanabilirsiniz. `GET` isteğiyle `/api/user` endpoint’ine gittiğinizde JSON formatında bir kullanıcı bilgisi alacaksınız. `POST` isteğiyle aynı endpoint’e bir kullanıcı verisi gönderdiğinizde ise bir başarı mesajı alırsınız.