CRUD işlemleri, veri depolama ve alma içeren herhangi bir web uygulamasında esastır. Bu işlemler, kullanıcıların yeni kayıtlar oluşturmasına, mevcut kayıtları almasına, mevcut kayıtları güncellemesine ve bir veritabanından kayıtları silmesine olanak tanır.
FastAPI, API uç noktalarını tanımlamanın ve HTTP isteklerini işlemenin basit ve sezgisel bir yolunu sağlayarak CRUD işlemlerini uygulamayı kolaylaştırır. Etkileşimli API dokümantasyonu oluşturmak ve veri doğrulama yapmak için Python'ın tür ipuçlarından yararlanır, bu da onu sağlam ve iyi belgelenmiş API'ler oluşturmak için güçlü bir araç haline getirir.

Bu yazıda, FastAPI ile CRUD işlemlerini nasıl hızlı bir şekilde uygulayacağımızı inceleyeceğiz. FastAPI ve veritabanını kurarak başlayacak, ardından CRUD işlemleri için API uç noktalarını oluşturmaya devam edeceğiz. Ayrıca oluşturma, okuma, güncelleme ve silme işlemlerinin yanı sıra bu işlemlerin test edilmesini ve doğrulanmasını da ele alacağız. Öyleyse başlayalım ve FastAPI ve CRUD işlemlerinin dünyasına dalalım!
FastAPI'de CRUD Nedir?
FastAPI'de CRUD, bir veritabanında veya veri depolama sisteminde veriler üzerinde gerçekleştirilebilen temel işlemleri ifade eder. CRUD, Oluşturma, Okuma, Güncelleme ve Silme anlamına gelir ve çoğu uygulamada verileri yönetmek için gerekli olan temel işlevleri temsil eder.

İşte FastAPI'deki CRUD işlemlerinin ayrıntılı bir açıklaması:
- Oluştur (C): Bu işlem, veritabanına yeni veri eklemeyi içerir. FastAPI'de, uygun uç noktaya bir POST isteği göndererek veri oluşturabilirsiniz. Örneğin, sisteme yeni bir kullanıcı eklemek için, istek gövdesinde ilgili kullanıcı ayrıntılarını içeren kullanıcı oluşturma uç noktasına bir POST isteği gönderirsiniz.
- Okuma (R): Okuma işlemi, veritabanından mevcut verileri almayla ilgilidir. FastAPI'de, GET isteklerini kullanarak Okuma işlemleri gerçekleştirebilirsiniz. Örneğin, tüm kullanıcıları veya belirli bir kullanıcının ayrıntılarını almak istiyorsanız, ilgili uç noktaya bir GET isteği gönderirsiniz.
- Güncelleme (U): Bu işlem, veritabanındaki mevcut verileri değiştirmenize olanak tanır. FastAPI'de, PUT veya PATCH isteklerini kullanarak verileri güncelleyebilirsiniz. PUT isteği, tüm kaynağı güncellemek için kullanılırken, PATCH, kaynağın belirli alanlarını değiştirmek için kullanılır. Örneğin, bir kullanıcının bilgilerini güncellemek için, güncellenmiş ayrıntıları içeren kullanıcı uç noktasına bir PUT veya PATCH isteği gönderirsiniz.
- Silme (D): Silme işlemi, veritabanından veri kaldırmayı içerir. FastAPI'de, DELETE isteklerini kullanarak verileri silebilirsiniz. Örneğin, sistemden bir kullanıcıyı silmek için, kullanıcının tanımlayıcısını veya benzersiz anahtarını içeren kullanıcı uç noktasına bir DELETE isteği gönderirsiniz.
FastAPI ile CRUD İşlemleri Nasıl Hızlıca Oluşturulur
FastAPI ile CRUD işlevselliğini uygulamak için şu adımları izleyin:
Adım 1: FastAPI'yi Yükleyin: Sisteminizde Python'un yüklü olduğundan emin olun ve FastAPI'yi yüklemek için komut satırında aşağıdaki komutu yürütün:
pip install fastapi
Adım 2: Bir FastAPI Uygulaması Oluşturun: Yeni bir Python dosyası (örneğin, main.py) oluşturun ve gerekli modülleri ve kitaplıkları içe aktarın:
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
Adım 3: Veri Modellerini Tanımlayın: Veri modellerini tanımlamak için Pydantic'i kullanın. Örneğin:
class Item(BaseModel):
id: int
name: str
price: float
Adım 4: CRUD Rotaları ve İşleyiciler Oluşturun: CRUD işlemleri için rotalar ve ilgili işlevleri işlemek için FastAPI'yi kullanın. İşte bir örnek:
items = []
@app.get("/items", response_model=List[Item])
async def read_items():
return items
@app.post("/items", response_model=Item)
async def create_item(item: Item):
items.append(item)
return item
@app.put("/items/{item_id}", response_model=Item)
async def update_item(item_id: int, item: Item):
items[item_id] = item
return item
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
del items[item_id]
return {"message": "Item deleted"}
Adım 5: Uygulamayı Çalıştırın: FastAPI uygulamasını çalıştırmak ve APIRouter işlevselliğini test etmek için uvicorn gibi bir ASGI sunucusu kullanın. uvicorn'un yüklü olduğundan emin olun:
pip install uvicorn
IDE düzenleyicinizde, terminali açın, main.py dosyasının saklandığı dizine gidin ve uygulamayı başlatmak için aşağıdaki komutu çalıştırın:
uvicorn main:app --reload
Bu, FastAPI uygulamasını varsayılan bağlantı noktasında (genellikle 8000) otomatik yeniden yükleme etkinleştirilmiş olarak başlatacaktır, böylece kod değişiklikleri yaptığınızda uygulama otomatik olarak yeniden yüklenecektir.
Adım 6: CRUD İşlemini Test Edin
İstek göndermek ve Oluşturma, Okuma, Güncelleme ve Silme işlevlerini test etmek için bir HTTP istemci aracı (örneğin, cURL veya Apidog) kullanın. İşte bazı örnek istekler:
- Yeni bir öğe oluşturun: Yeni bir öğe oluşturmak için istek gövdesiyle birlikte bir POST isteği gönderin.
POST http://localhost:8000/items
{
"id": 1,
"name": "Apple",
"price": 0.5
}

- Tüm öğeleri alın: Tüm öğeleri almak için bir GET isteği gönderin.
GET http://localhost:8000/items

- Bir öğeyi güncelleyin: Bir öğeyi güncellemek için istek gövdesiyle birlikte bir PUT isteği gönderin.
GET http://localhost:8000/items

- Bir öğeyi silin: Bir öğeyi silmek için bir DELETE isteği gönderin.
DELETE http://localhost:8000/items/1

Son olarak, Apidog'da silme işlemi için testler yazabiliriz. Silme uç noktasına bir DELETE isteği simüle edebilir ve yanıt durum kodunun 200 (başarılı bir silmeyi gösterir) olup olmadığını kontrol edebiliriz. Daha sonra silinen verileri veritabanından almaya çalışabilir ve bunların mevcut olmadığını sağlayabiliriz.
Bu testleri yazarak, CRUD işlemlerimizin doğru çalıştığından ve geçersiz giriş veya mevcut olmayan veriler gibi farklı senaryoları ele aldığından emin olabiliriz.
Bonus İpuçları
Kod tamamlama, hata kontrolü ve hata ayıklama özellikleri ile geliştirilmiş geliştirme verimliliği için Visual Studio Code gibi IDE desteği kullanın.
- FastAPI kullanırken, kod tamamlama, hata kontrolü ve hata ayıklama özellikleri ile geliştirilmiş geliştirme verimliliği için Visual Studio Code gibi IDE desteğinden yararlanın.
- Rotaları ve işleme işlevlerini farklı modüllere ayırarak kod tabanınızı düzenleyin, bakımı ve ölçeklenebilirliği teşvik edin. Performansı ve eşzamanlılık yeteneklerini geliştirmek için eşzamansız işlemler için FastAPI'nin eşzamansız desteğini kullanın.
- Uygun kimlik doğrulama ve yetkilendirme mekanizmalarıyla API güvenliğini sağlayın. Veri tutarlılığını korumak ve hataları etkili bir şekilde işlemek için veri doğrulama ve serileştirme için Pydantic modellerini kullanın. Gerekirse, kaynaklar arası kaynak paylaşımı için CORS uygulayın.
- API güvenilirliğini ve işlevselliğini sağlamak için kapsamlı birim ve entegrasyon testleri oluşturun. FastAPI'nin özel hata işleme ve özel hata yanıtlarıyla hataları düzgün bir şekilde işleyin. Performansı günlükler ve profil oluşturucularla izleyin ve hata düzeltmeleri ve yeni özellikler için FastAPI ve bağımlılıklarını güncel tutun.
Bu uygulamaları izleyerek, geliştirme ve dağıtım sürecinizi kolaylaştırarak FastAPI ile sağlam ve verimli API'ler geliştirebilirsiniz.