REST API Nedir ve Nasıl Çalışır? Python ve FastAPI ile Sıfırdan Adım Adım İlk API'nızı Yazın
Modern web ve mobil uygulamaların evrensel iletişim dili: REST mimarisi. HTTP metotları (GET, POST, PUT, DELETE), JSON veri formatı ve Python'un en modern, asenkron backend çatısı FastAPI ile dakikalar içinde canlıya alınabilir ilk API'mızı geliştiriyoruz.
Akıllı telefonunuzdaki hava durumu uygulamasının havanın kaç derece olduğunu nereden bildiğini hiç düşündünüz mü? Veya geliştirdiğimiz Batı Rota ve SesliPil gibi mobil uygulamaların, sunucudaki verilerle nasıl konuştuğunu? Cevap çok basit ama bir o kadar da büyüleyici: API (Application Programming Interface - Uygulama Programlama Arayüzü). Farklı platformlarda çalışan (Android, iOS, Web, IoT) sistemlerin ortak bir dille veri alışverişi yapabilmesi için kurulan bu köprünün modern standartlarına ise REST (Representational State Transfer) mimarisi diyoruz.
REST Mimarisi Nedir ve Nasıl Çalışır?
REST, sistemlerin HTTP protokolü üzerinden JSON formatında hafif ve hızlı veri alışverişi yapmasını sağlayan bir kurallar bütünüdür. REST mimarisinin en önemli prensibi 'Stateless' (Durumsuzluk) ilkesidir; yani sunucu her isteği birbirinden bağımsız olarak değerlendirir, istemcinin önceki adımlarını oturumda tutmaz. İstek yapılır, yanıt (response) alınır ve bağlantı kapanır.
HTTP Metotları (CRUD Operasyonları):
REST mimarisinde veritabanı işlemleri HTTP'nin temel fiilleriyle eşleşir:
- GET: Veriyi okumak ve listelemek için kullanılır (Örn: /api/ogrenciler).
- POST: Sunucuya yeni bir kayıt eklemek için kullanılır (Örn: Yeni öğrenci kaydı oluşturma).
- PUT / PATCH: Var olan bir kaydı güncellemek için kullanılır.
- DELETE: Bir veriyi silmek için kullanılır.
Sunucu işlemi tamamladığında geriye bir HTTP Durum Kodu (Status Code) döner: Başarılıysa 200 OK veya 201 Created; kaynak bulunamadıysa 404 Not Found; sunucuda hata varsa 500 Internal Server Error gibi.
Neden FastAPI? Python Dünyasının Yeni Gözdesi
Python ile backend dendiğinde akla uzun yıllar Django ve Flask geldi. Ancak modern mikroservis dünyasında 'FastAPI' fırtınası esiyor. FastAPI; Starlette ve Pydantic kütüphaneleri üzerine inşa edilmiş, inanılmaz derecede hızlı (Go ve NodeJS hızlarına yakın), yerleşik asenkron (async/await) desteği sunan ve en önemlisi tek satır bile ekstra kod yazmadan otomatik olarak interaktif Swagger API dökümantasyonu üreten bir şaheserdir.
10 Dakikada İlk API'mızı Yazalım:
Öncelikle terminalden gerekli iki paketi kuralım:
pip install fastapi uvicorn
Ardından 'main.py' adında bir dosya oluşturup şu sade kodu yazalım:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI(title='Baver Elçi API Akademisi')
class NotDefteri(BaseModel):
baslik: str
icerik: str
onem_derecesi: int = 1
@app.get('/')
def ana_sayfa():
return {'mesaj': 'REST API Başarıyla Çalışıyor!'}
@app.post('/not-ekle')
def not_ekle(not_verisi: NotDefteri):
return {'durum': 'Kaydedildi', 'veri': not_verisi}
Otomatik Dökümantasyonun Gücü:
Terminalden şu komutu vererek API sunucumuzu başlatalım:
uvicorn main:app --reload
Sunucu ayağa kalktığında tarayıcınızı açıp 'http://127.0.0.1:8000/docs' adresine gidin. Karşınıza rengarenk, interaktif bir Swagger UI ekranı çıkacaktır. Burada yazdığınız tüm endpoint'leri görebilir, 'Try it out' butonuna basarak Postman gibi harici programlara gerek kalmadan doğrudan tarayıcı üzerinden API'nize POST ve GET istekleri gönderebilirsiniz. Pydantic sayesinde gelen verilerin tipi (str, int) otomatik olarak denetlenir ve hatalı veri gönderildiğinde API anında kullanıcıya anlaşılır hata mesajı döner.
Sonuç ve Gelecek Vizyonu:
Bugün ister yapay zeka modelleriyle konuşan bir sohbet botu yapın, ister mobil bir sensör takip uygulaması; sağlam bir REST API mimarisi kurmayı bilmek her yazılımcının alet çantasında bulunması gereken en değerli beceridir. FastAPI'nin sunduğu bu hafif ve modern yapı sayesinde artık günlerce konfigürasyonla uğraşmadan dakikalar içinde kurumsal kalitede backend servisleri ayağa kaldırabilirsiniz.