Giriş: Flask API Nedir?
Bir web geliştiricisi olarak, çoğu zaman veritabanı ve frontend arasındaki iletişimi sağlamanızı gerektiren projelerle karşılaşırsınız. İşte burada, Flask API devreye giriyor. Flask, Python'un minimalist web framework'lerinden biridir ve son derece esnektir. Flask ile geliştirilen bir API, verilerinizi frontend ile paylaşmanın en hızlı ve verimli yoludur. Peki, Flask ile API geliştirmeye nasıl başlanır? Haydi, adım adım keşfedelim.
Adım 1: Flask'ı Yükleyin
İlk adımda Flask'ı projeye dahil etmemiz gerekiyor. Flask, Python’un paket yöneticisi olan pip ile kolayca kurulabilir. Eğer Python bilgisayarınızda yüklü değilse, ilk olarak Python’u indirmeniz gerektiğini unutmayın.
Terminal veya komut istemcisinde şu komutu çalıştırarak Flask’ı yükleyebilirsiniz:
pip install flask
Yükleme tamamlandıktan sonra, Flask'ı kullanmaya hazır hale gelirsiniz.
Adım 2: Basit Bir Flask Uygulaması Oluşturun
Flask ile bir API başlatmak oldukça basittir. Şimdi, temel bir uygulama oluşturalım. Flask, uygulamanızda birkaç önemli bileşene sahiptir. En temel olanı ise, Flask app'inizin çalıştığı yerdir.
Öncelikle, uygulama dosyanızı oluşturun. Örneğin, `app.py` adını verelim. İşte basit bir Flask uygulaması:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Merhaba, Flask API!"
if __name__ == '__main__':
app.run(debug=True)
Bu kodu çalıştırdığınızda, `http://127.0.0.1:5000/` adresinde "Merhaba, Flask API!" mesajını görebileceksiniz. Flask'ın ne kadar kolay çalıştığını görmek oldukça heyecan verici, değil mi?
Adım 3: RESTful API Rotaları Ekleyin
Flask API, RESTful servislerle çalışmak için idealdir. REST, Representational State Transfer anlamına gelir ve web servislerinin standart iletişim şeklidir. Şimdi, bir RESTful API yaratmak için birkaç rota ekleyeceğiz.
Örneğin, kullanıcıların verilerini alabileceğiniz ve gönderebileceğiniz birkaç endpoint ekleyelim:
from flask import Flask, jsonify, request
app = Flask(__name__)
# Basit kullanıcı listesi
users = [
{"id": 1, "name": "Ahmet"},
{"id": 2, "name": "Mehmet"}
]
@app.route('/users', methods=['GET'])
def get_users():
return jsonify(users)
@app.route('/user', methods=['POST'])
def add_user():
new_user = request.get_json()
users.append(new_user)
return jsonify(new_user), 201
if __name__ == '__main__':
app.run(debug=True)
Bu örnekte, iki farklı rota ekledik:
1. `/users` rotası ile kullanıcıları GET yöntemiyle listeleyebiliyoruz.
2. `/user` rotası ise POST yöntemiyle yeni bir kullanıcı eklememize olanak sağlıyor.
Adım 4: Veritabanı Entegrasyonu
Flask ile API geliştirmek, yalnızca statik verilerle sınırlı kalmaz. Gerçek dünyada çoğu API, bir veritabanı ile iletişim kurar. Bu aşamada, basit bir veritabanı entegrasyonu ekleyerek daha dinamik bir API yaratabiliriz.
Flask uygulamanızda veritabanı bağlantısı kurmak için SQLAlchemy gibi bir ORM (Object Relational Mapping) kullanabilirsiniz. Bu, veritabanı işlemlerini daha kolay hale getirir. SQLAlchemy’yi yüklemek için şu komutu kullanabilirsiniz:
pip install flask-sqlalchemy
Veritabanı bağlantısı kurduktan sonra, kullanıcıları veritabanına kaydedebilir ve çekebilirsiniz. İşte bir örnek:
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False)
@app.route('/users', methods=['GET'])
def get_users():
users = User.query.all()
return jsonify([{"id": user.id, "name": user.name} for user in users])
@app.route('/user', methods=['POST'])
def add_user():
new_user = request.get_json()
user = User(name=new_user['name'])
db.session.add(user)
db.session.commit()
return jsonify({"id": user.id, "name": user.name}), 201
if __name__ == '__main__':
db.create_all() # Veritabanı tablolarını oluşturur
app.run(debug=True)
Burada, SQLite veritabanı kullanarak kullanıcıları kaydediyoruz ve veritabanından alıyoruz.
Adım 5: Flask API'yi Yayınlayın
API geliştirmek harika bir şey, ancak onu yayına almak da en az geliştirmek kadar önemlidir. Flask API’nizi internet üzerinde erişilebilir hale getirmek için genellikle Heroku veya AWS gibi platformları kullanabilirsiniz.
Flask uygulamanızı Heroku'ya deploy etmek için:
1. Heroku hesabınızı oluşturun.
2. Uygulamanızı git ile versiyonlayın.
3. Heroku CLI ile uygulamanızı deploy edin.
Flask API’nizi bulut ortamında çalıştırarak, dünya çapında kullanıcılara sunabilirsiniz.
Sonuç: Flask ile API Geliştirme
Flask ile API geliştirmek, esnekliği ve sadeliği sayesinde oldukça keyifli bir deneyim olabilir. Küçük bir proje için Flask kullanmak, hızlıca bir backend kurmak isteyenler için mükemmel bir tercih. Flask, öğrenmesi kolay ve güçlü bir framework olduğundan, herhangi bir web geliştiricisinin başvurabileceği harika bir araçtır. Şimdi, öğrendiklerinizi uygulayarak kendi API’nizi geliştirebilir ve projelerinizde kullanabilirsiniz!