Giriş ve Temel Kavramlar
Flask, Python tabanlı hafif ve esnek bir web framework’üdür. REST (Representational State Transfer) ise, modern web servisleri ve API’lerin tasarımında kullanılan, HTTP protokolü üzerinden kaynakların erişimi ve yönetimi esas alan bir mimaridir. Flask ile REST API geliştirmek, mikroservis mimarileri ve dinamik web uygulamaları için temel ve pratik bir yaklaşımdır.
Flask Kurulumu ve Ortam Hazırlığı
İlk adım olarak, uygun bir sanal ortam oluşturarak projeyi izole etmek en sağlıklısıdır:
1234bash
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
Daha sonra Flask ve Flask-RESTful gibi temel kütüphaneleri kurarız:
12bash
pip install Flask Flask-RESTful
Basit Bir REST API Oluşturma
Flask ile temel bir API, uygulama nesnesi ve kaynaklar (resources) tanımlayarak başlar:
123456789101112131415python
from flask import Flask
from flask_restful import Resource, Api
app = Flask([b]name[/b])
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {'message': 'Merhaba Dünya'}
api.add_resource(HelloWorld, '/')
if [b]name[/b] == '[b]main[/b]':
app.run(debug=True)
Burada,
/ endpoint’ine gelen GET istekleri, JSON formatında bir mesaj döner. Bu yapı, REST API’nin temel GET, POST, PUT, DELETE metodlarıyla genişletilebilir.
REST API Tasarımında Dikkat Edilmesi Gerekenler
- Kaynakların Tutarlı İsimlendirilmesi: URL’lerde mantıklı ve anlaşılır isimler kullanmak. Örneğin,
/kullanicilar veya /urunler. - HTTP Metodlarının Doğru Kullanımı: GET ile veri okuma, POST ile yeni veri ekleme, PUT ile güncelleme, DELETE ile silme işlemleri yapılmalı.
- Durum Kodları: Her işlem, uygun HTTP durum kodlarıyla (200, 201, 404, 500 vb.) belirtilmeli.
- Güvenlik ve Yetkilendirme: API erişimini token veya API anahtarlarıyla kontrol altına almak önemli.
- Veri Formatı ve Validation: Gelen veriyi doğrulama ve temizleme, hatalı istekleri uygun şekilde karşılamak.
Bu temel bilgilerle Flask tabanlı REST API geliştirmeye başlayabilir, ihtiyaçlara uygun genişletmeler ve güvenlik önlemleri ekleyerek güvenilir ve ölçeklenebilir servisler oluşturabilirsiniz.