Skip to content

TCMB'dan Tüm Döviz kurlarını alan Python 3 kodu - Rest Api - Flask

License

Notifications You must be signed in to change notification settings

tayfunulu/DovizKurlari

Repository files navigation

Doviz Kurlari Api Rest - Microservis - Docker

Türkiye Cumhuriyeti Merkez Bankası sitesinden XML olarak verileri alarak kullanmanızı sağlayacak Python kodu (nesnesi)'dir. Microservis olarak kullanmak içinde Dockerfile dosyası vardır.

Eğitim ve bilgilendirme amaçlıdır. Ticari bir beklenti yoktur.

Bilginin Alındığı Sayfa : www.tcmb.gov.tr - https://www.tcmb.gov.tr/kurlar/today.xml


Örnek olması için Google Cloud'da örnek kod :

https://dovizkurlari-l6vtviaacq-uc.a.run.app/api/doviz/usd

https://dovizkurlari-l6vtviaacq-uc.a.run.app/api/doviz

https://dovizkurlari-l6vtviaacq-uc.a.run.app/api/doviz/2020/04/01

https://dovizkurlari-l6vtviaacq-uc.a.run.app/api/doviz/2020/04/01/eur


Docker ile Kullanımı:

öncelikle docker hub'dan ilgili container image :

docker pull tayfunulu/tl_doviz_kurlari

Manual Çalıştırma (arka ekranda çalıştırma)

docker run --rm -it -d -p 5000:5000 tayfunulu/tl_doviz_kurlari


Docker-Compose dosyası
version: '3'
services:
  doviz_microservis:
  container_name: tl_doviz_kurlari
  image: tayfunulu/tl_doviz_kurlari
  restart: always
  ports:
    - "5000:5000"

Çalışıp çalışmadığını test edelim.

http://makinenin_ipsi:5000/api/doviz

örnek

http://127.0.0.1:5000/api/doviz

Çalışıyorsa aşağıdaki metotları kullanabilirsiniz.


RESTFUL-API KULLANIMI

/api/doviz

GET -> Güncel kur bilgilerinin tamamını verir.

POST -> JSON ile tarih bilgisi gönderirseniz "gun.ay.yil" formatında "01.04.2020" ilgili günün tüm kurlarını verir. Hangi kuru istediğinizi eklerseniz sadece o kurun bilgileri gelir.

        {"tarih":"01.04.2020"}  
        {"tarih":"01.04.2020","tur":"EUR"}  

/api/doviz/_TUR_

örnek : /api/Doviz/USD

GET -> Seçilen Kur türünün tüm bilgilerini verir.

POST -> Seçilen Kur türünün arşiv verisini almak için

        {"tarih":"01.04.2020"}  

/api/doviz/_yil/ay/gun_

örnek : /api/doviz/2020/02/08

GET -> Arşivden ilgili günün tüm kur bilgilerini verir.

/api/doviz/_yil/ay/gun/TUR_

örnek : /api/doviz/2020/02/010/USD

GET -> Arşivden ilgili günün seçilen kur bilgilerini verir.


Not : Arşiv özelliğinde tatil günleri için Tatil günü olduğunu belirten bir hata döner


Kendi Kodunuzda Nesne olarak Kullanımı :

--------------------------

sistemden zip'li olarak çekin veya "git clone" ile direk sistemden clone yapın.

git clone https://github.com/tayfunulu/DovizKurlari.git

cd DovizKurlari

python3 ornek.py

Kendi kodunuzda kullanmak için DovizKurlari.py dosyasını kendi projenizin klasörünüze taşıyın. Sonrasında DovizKurları Nesnesi yaratarak, DegerSor fonksiyonu ile istediğiniz değeri sistemden çekebilirsiniz. "DegerSor" fonksiyonu iki parametre alır.

DegerSor (Parametre1, Parametre2)

* Parametre verilmezse JSON olarak tüm veriler döner

Parametre1 = USD, EUR, AUD gibi para cinsinin resmi kısaltmaları

Parametre2 = Almak istediğiniz değer ;

"BanknoteBuying"    : Alış Değeri
"BanknoteSelling"   : Satış Değeri
"CrossRateUSD"      : USD ile çapraz kur
"CurrencyName"      : Resmi Adı
"ForexBuying"       : Forex Alış     
"ForexSelling"      : Forex Satış
"Kod"               : Kodu 
"Unit"              : 1
"isim"              : Türkçe Adı     

Arşivden veri çekmek

Eski bir tarihteki kur'u ögrenmek için Arsiv veya Arsiv_Tarih fonksiyonlarını kullanabilirsiniz.

Arsiv ( Gun, Ay, Yil,Parametre1, Parametre2)

Gun, Ay, Yil = integer veya string olabilir.

Arsiv_Tarih (Tarih,Parametre1, Parametre2)

Tarih = "01.02.2015" Şeklinde bir string veri olmalıdır.


Local'de Microservis olarak çalıştırılması.

python3 flask_doviz_server.py

Sonrasında 5000 portu dinlemeye başlar. Kullanımı yukarıda anlatıldığı gibidir.