YZ İle  “Döviz / Kripto Dönüştürücü REST API” Geliştirme

YZ İle  “Döviz / Kripto Dönüştürücü REST API” Geliştirme

Hedef: Python (FastAPI) kullanarak, dışarıdan güncel kurları çeken, önbellekleme (caching) yapan ve Swagger dokümantasyonu olan profesyonel bir API geliştirmek.

1. Aşama: Mimarinin Tasarlanması ve Yaptırılacak İşin Tanımı

Yazılıma başlamadan önce yapay zekaya doğrudan kod yazdırmak yerine, projeyi mimari açıdan planlamasını isteyin.

Prompt 1 (Mimarı Rolü):Sen kıdemli bir Backend Mimarısın. Python ve FastAPI kullanarak bir Döviz Dönüştürücü API geliştireceğiz. Sistem dış bir API’den (örn. Exchangerate-api) kurları çekecek, her istekte dış sunucuya gitmemek için lütfı memory-cache (veya functools) kullanacak. Bana bu projenin dosya yapısını, kullanılacak kütüphaneleri ve temel mimari adımlarını listeler misin?”

YZ’nin Çıktısı (Özet):

  • main.py (API rotaları ve FastAPI uygulaması)
  • services.py (Dış API çağrıları ve dönüştürme mantığı)
  • schemas.py (Pydantic veri doğrulama modelleri)
  • requirements.txt (fastapi, uvicorn, requests, pydantic)

2. Aşama: Veri Modelleri ve İş Mantığının (Business Logic) Üretilmesi

Dosya yapısı belirlendikten sonra kod bloklarını modüler olarak ürettirin.

Prompt 2 (Kod Üretimi – Veri Modelleri):FastAPI projemiz için schemas.py dosyasını yaz. İstek (Request) modeli olarak from_currency, to_currency ve amount almalı. Yanıt (Response) modeli olarak from_currency, to_currency, original_amount, converted_amount ve rate döndürmeli. Pydantic v2 uyumlu olsun ve tip kontrolleri/örnek değerler (json_schema_extra) içersin”.

Prompt 3 (İş Mantığı ve Cache):Şimdi services.py dosyasını yaz. Bu dosya dış bir API’den güncel döviz kurunu çekip hesaplama yapacak. Dış API erişimi başarısız olursa uygun bir Exception fırlatmalı. Ayrıca functools.lru_cache veya zamana dayalı basit bir önbellek mekanizması ekleyerek aynı kurlar için sürekli dış servise istek atılmasını engelle”.

3. Aşama: API Rotalarının Birleştirilmesi (main.py)

Şimdi üretilen parçaları FastAPI’nin ana uygulamasına bağlıyoruz.

4. Aşama: Birim Testlerinin (Unit Test) Otomatik Yazdırılması

Bir YZ modelinin en başarılı olduğu alanlardan biri, yazılan koda uygun Unit Test üretmektir.

Prompt 4 (Test Yazımı):Yukarıda yazdığımız services.py ve main.py kodları için pytest ve FastAPI TestClient kullanarak birim testleri yaz. Dış API çağrılarını unittest.mock (Mocking) kullanarak simüle et, böylece testler çalışırken gerçek internet isteği atılmasın”.

5. Aşama: Refactoring ve Hata Ayıklama (Debugging)

Kod çalıştıktan sonra güvenlik, performans ve okunabilirlik taraması yaptırın.

Prompt 5 (Kod İyileştirme ve Güvenlik): “Yazdığımız bu tüm kodları incele:

  1. Herhangi bir bellek sızıntısı veya güvenlik açığı var mı?
  2. Type hint (tip ipuçları) eksiksiz mi?
  3. Hata yönetimi (Error Handling) edge-case’leri (örneğin eksi miktar girilmesi, geçersiz para birimi kodu) kapsıyor mu? Eksikleri giderip production-ready (canlıya alınabilir) hale getir”.

Synapse Scholar

YZ Hocası'nın kurucu editörü olup, pazarlama ile dijitalleşme eksenindeki çalışmalarıyla tanınmaktadır.

⚡ HAFTANIN PROMPTU

Bir nesnenin yapısını, kullanım amacını ve temel özelliklerini üç farklı görsel anlatımla tanıtmak için kullanılır.

Yüklediğim nesnenin fotoğrafını kullanarak üç bölümlü tek bir görsel oluştur. Sol bölümde nesneyi “exploded view” tarzında göster. Ana parçalarını düzenli aralıklarla ayır ve birbirleriyle ilişkilerini koru. Orta bölümde nesnenin adını ve kullanım amacını, dokulu bir kâğıt üzerine doğal ve okunaklı el yazısıyla yaz. Sağ bölümde nesnenin üç temel özelliğini, farklı pastel renklerdeki yapışkan notlara yerleştir. Her notta kısa bir ifade bulunsun. Nesnenin rengini ve tasarımını referans fotoğrafla uyumlu tut. İç yapısı görünmüyorsa oluşturduğun parçaların temsili olduğunu küçük bir notla belirt. Açık renkli sade bir arka plan, yumuşak ışık ve dengeli bir yerleşim kullan. Tüm yazılar Türkçe olsun. Görseli 16:9 yatay formatta hazırla.

Yorumlar (0)

Bir Yorum Bırakın