Flask Nedir ve Neden Kullanılır?
Flask'in popülaritesi, kullanıcılara esneklik sağlamasında yatar. Web uygulamaları için bir başlangıç framework’ü arayanlar için mükemmel bir seçenek olup, özellikle API geliştirmek isteyenler için de idealdir.
Flask ile API Nasıl Yapılır?
```bash
pip install Flask
```
Şimdi, basit bir API geliştirmeye başlıyoruz. Aşağıdaki gibi, Flask'i kullanarak tek bir endpoint (yol) ile bir API oluşturabilirsiniz:
```python
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/greet', methods=['GET'])
def greet():
return jsonify({"message": "Merhaba, Flask API!"})
if __name__ == "__main__":
app.run(debug=True)
```
Bu kodu çalıştırdığınızda, yerel sunucunuzda `/api/greet` endpoint'ine GET isteği yaparak `"Merhaba, Flask API!"` mesajını alırsınız. Basit ama etkili! Şimdi, bu temeli biraz daha geliştirerek, ileri seviyeye doğru ilerleyelim.
API'yi Geliştirmenin İleri Seviyesi: Parametreler ve Hata Yönetimi
```python
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api/greet', methods=['GET'])
def greet():
name = request.args.get('name', 'Ziyaretçi') # Parametre al
return jsonify({"message": f"Merhaba, {name}!"})
if __name__ == "__main__":
app.run(debug=True)
```
Burada, URL üzerinden bir `name` parametresi alıyoruz. Bu parametreyi isteğe bağlı olarak gönderebilirsiniz. Eğer parametre gönderilmezse, varsayılan olarak `'Ziyaretçi'` adı kullanılır.
Bunun dışında, gerçek bir API’de hata yönetimi çok önemlidir. API'niz beklentiler dışı durumlarla karşılaştığında düzgün hata mesajları döndürmelidir. Flask ile hata yönetimini kolayca yapabilirsiniz:
```python
@app.route('/api/user/
def get_user(user_id):
users = {1: 'Ali', 2: 'Ayşe'}
if user_id not in users:
return jsonify({"error": "Kullanıcı bulunamadı"}), 404
return jsonify({"user": users[user_id]})
```
Bu kod parçası, kullanıcıyı almak için bir ID parametresi alır. Eğer kullanıcı bulunmazsa, Flask 404 hata kodu ile kullanıcıya anlamlı bir hata mesajı döndürür.
Flask ile Güvenlik
İlk olarak, gerekli kütüphaneyi yükleyin:
```bash
pip install Flask-JWT-Extended
```
Sonra, aşağıdaki gibi bir güvenlik uygulaması oluşturabilirsiniz:
```python
from flask import Flask, request, jsonify
from flask_jwt_extended import JWTManager, jwt_required, create_access_token
app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'çokgizli'
jwt = JWTManager(app)
@app.route('/login', methods=['POST'])
def login():
username = request.json.get('username', None)
password = request.json.get('password', None)
if username != 'admin' or password != 'secret':
return jsonify({"error": "Geçersiz kullanıcı adı veya şifre"}), 401
access_token = create_access_token(identity=username)
return jsonify(access_token=access_token)
@app.route('/protected', methods=['GET'])
@jwt_required()
def protected():
return jsonify(message="Bu korunan bir alan!")
if __name__ == "__main__":
app.run(debug=True)
```
Bu kod, kullanıcı adı ve şifre doğruysa bir JWT (JSON Web Token) oluşturur ve kullanıcıya verir. Ardından, kullanıcı bu token ile korunan bir endpoint'e erişebilir.
Sonuç: Flask ile API Geliştirmenin Gücü
---