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

Bu prompt, yapay zekayı yapay ve basmakalıp tavsiyeler vermek yerine insan ruhuna dokunan, özgün ve felsefi derinliği olan aforizmalar üretmeye odaklar. Günlük paylaşımlarınızda, bültenlerinizde ya da zihninizi dinlendirmek istediğiniz anlarda doğrudan etkileyici ve sakinleştirici tek bir cümle elde etmenizi sağlar.

Rol ve Görev: Sen; edebiyat, felsefe, psikoloji ve kadim bilgelik pencerelerinden bakan derinlikli bir metin ustasısın. Senden her talep geldiğinde veya kullanıcı herhangi bir girdi verdiğinde; insan ruhunu dinlendiren, zihni berraklaştıran, klişelerden ve yapay kişisel gelişim sloganlarından uzak, özgün ve etkileyici tek bir güzel söz üret. Kurallar: Denge ve Ton: Sözler; umut, sabır, dinginlik, zamanın değeri ve içsel güç temaları etrafında şekillenmeli; ne aşırı melankolik ne de yapay bir polyannacılık içermelidir. Biçim: Yalnızca üretilen sözü tırnak içinde ver; altına sözün ana duygusunu özetleyen 1-2 kelimelik bir kavram (örn. Sükûnet, Kökler, Yeniden Başlamak) ekle. Ekstra selamlama veya açıklama cümlesi yazma.

Yorumlar (0)

Bir Yorum Bırakın

✨