Flask ile REST API Nedir?
Herkesin hayatında bir noktada, bir web uygulaması veya mobil uygulama geliştirdiğinde mutlaka karşılaştığı, veri alışverişi yapmayı sağlayan API’ler vardır. Peki, REST API nedir? REST, "Representational State Transfer" kelimelerinin kısaltmasıdır ve bu mimari, uygulamalar arasında veri aktarımını sağlayan hafif bir yöntemdir. Python dünyasında ise, REST API'leri genellikle Flask veya Django gibi mikroframework'lerle geliştirilir. Bizim bugünkü konuğumuz ise Flask.
Flask, Python ile geliştirilmiş, minimal ama güçlü bir web framework'üdür. Flask kullanarak hızlı ve esnek bir şekilde REST API'leri oluşturmak mümkün. Hadi, hep birlikte Flask ile nasıl basit bir REST API yapabileceğimizi keşfedelim!
Flask ile REST API Yapmaya Başlamak
İlk olarak, Flask'ı kurmamız gerekiyor. Eğer bilgisayarınızda Python yüklü değilse, [Python’un resmi sitesinden](https://www.python.org/downloads/) Python’u indirip kurabilirsiniz. Ardından, Flask’ı kurmak için terminal veya komut istemcisine şu komutu yazabilirsiniz:
kopyalapip install Flask
Bir Flask Uygulaması Oluşturma
Şimdi ise Flask ile bir uygulama oluşturalım. Flask, bizim için gerekli olan tüm HTTP işlemlerini yönetir. En basit haliyle bir Flask uygulaması şu şekilde başlar:
kopyalafrom flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Merhaba Dünya!' if __name__ == '__main__': app.run(debug=True)
Yukarıdaki kod, Flask uygulamanızın temelini atıyor. `@app.route('/')`, anasayfada `hello_world()` fonksiyonunu çağırarak 'Merhaba Dünya!' mesajını döndürüyor. Bu uygulamayı çalıştırmak için terminalde şu komutu kullanabilirsiniz:
kopyalapython app.py
Şimdi tarayıcınızda `http://127.0.0.1:5000/` adresine giderek, "Merhaba Dünya!" mesajını görebilirsiniz.
Veri Alışverişi İçin JSON Kullanmak
Flask ile daha karmaşık işlemler yapabilmek için genellikle JSON formatında veri alışverişi yaparız. API'ler çoğunlukla JSON kullanarak, veri gönderir veya alır. Şimdi, kullanıcı bilgilerini almak ve geri döndürmek için basit bir API oluşturalım.
Aşağıdaki örnekte, bir kullanıcıya ait bilgileri almak için bir endpoint (uç nokta) oluşturacağız:
kopyalafrom flask import Flask, jsonify app = Flask(__name__) @app.route('/api/user', methods=['GET']) def get_user(): user = { 'id': 1, 'name': 'Ahmet', 'age': 30 } return jsonify(user) if __name__ == '__main__': app.run(debug=True)
Bu kod parçasında, `/api/user` adlı bir endpoint oluşturduk. `GET` isteği gönderildiğinde, Ahmet adında bir kullanıcının bilgilerini içeren JSON formatında bir yanıt döndürüyoruz. JSON yanıtı şu şekilde olacak:
```json
{
"id": 1,
"name": "Ahmet",
"age": 30
}
```
Bu endpoint’e bir tarayıcı veya Postman gibi araçlarla istek gönderdiğinizde, yukarıdaki gibi bir yanıt alırsınız.
POST Yöntemi ile Veri Göndermek
Şimdi ise bir REST API’de veri gönderme işlemini yapalım. `POST` yöntemi, sunucuya veri göndermek için kullanılır. Basit bir kullanıcı ekleme işlemi yapalım:
kopyalafrom flask import Flask, request, jsonify app = Flask(__name__) @app.route('/api/user', methods=['POST']) def add_user(): new_user = request.get_json() # Kullanıcıdan gelen veriyi al return jsonify({ 'message': 'Kullanıcı başarıyla eklendi!', 'user': new_user }), 201 if __name__ == '__main__': app.run(debug=True)
Burada, `/api/user` endpoint’ine `POST` isteği gönderildiğinde, kullanıcı bilgileri alınıyor ve JSON formatında bir yanıt dönülüyor. Gelen veriyi `request.get_json()` ile alıyoruz ve geri gönderiyoruz.
Örneğin, Postman kullanarak şu JSON verisini gönderdiğinizde:
```json
{
"name": "Mehmet",
"age": 25
}
```
Yanıt şu şekilde olacaktır:
```json
{
"message": "Kullanıcı başarıyla eklendi!",
"user": {
"name": "Mehmet",
"age": 25
}
}
```
Flask REST API’sine Hata Yönetimi Eklemek
Bir API geliştirirken, hataların doğru bir şekilde yönetilmesi çok önemlidir. Flask, hata yönetimini oldukça basit hale getiriyor. Bir hata meydana geldiğinde, kullanıcıya anlamlı bir mesaj döndürebiliriz. Örneğin:
kopyalafrom flask import Flask, jsonify app = Flask(__name__) @app.route('/api/user/', methods=['GET']) def get_user(user_id): users = {1: 'Ahmet', 2: 'Mehmet', 3: 'Ali'} if user_id not in users: return jsonify({'error': 'Kullanıcı bulunamadı!'}), 404 return jsonify({'id': user_id, 'name': users[user_id]}) if __name__ == '__main__': app.run(debug=True)
Burada, belirtilen `user_id`’ye sahip bir kullanıcı bulunamadığında, 404 hata kodu ve uygun bir mesaj döndürüyoruz.
Sonuç: Flask ile REST API Geliştirme
Flask ile REST API geliştirmek gerçekten çok kolay ve eğlenceli! Az kod ile güçlü ve esnek API'ler oluşturmak, birçok modern web ve mobil uygulamanın temel taşlarından biridir. Flask’ın sadeliği ve esnekliği, onu API geliştirenler için harika bir seçim haline getiriyor.
Bu yazıda, Flask ile temel bir REST API oluşturmayı, JSON veri gönderip almayı ve hata yönetimini nasıl yapacağınızı öğrendiniz. Şimdi sıradaki adım, daha büyük projelere adım atmak ve öğrendiklerinizi gerçek dünyada kullanmak!