API NEDİR NE İŞE YARAR
API NE İŞE YARAR

API Nedir?
API (Application Programming Interface - Uygulama Programlama Arayüzü), farklı yazılımların birbiriyle iletişim kurmasını sağlayan bir köprü görevi görür. Bir uygulamanın veya servisin belirli işlevlerini, başka bir uygulamanın kullanabilmesi için tanımlanmış kurallar ve protokoller bütünüdür.
API Ne İşe Yarar?
-
Farklı sistemleri birbirine bağlar (örneğin, bir mobil uygulamanın sunucuyla iletişimi).
-
Kod tekrarını önler (aynı işlevi tekrar yazmak yerine hazır API’ları kullanabilirsiniz).
-
Veri paylaşımını kolaylaştırır (örneğin, hava durumu verilerini çekmek).
-
Güvenliği artırır (doğrudan veritabanına erişmek yerine kontrollü bir arayüz sunar).
API Çeşitleri ve Örnekleri
1. Web API (HTTP/ REST API)
-
HTTP protokolü kullanılarak çalışır.
-
JSON veya XML formatında veri alışverişi yapar.
-
Örnekler:
-
Twitter API (Tweet çekme, paylaşma)
-
Google Maps API (Harita ve konum bilgisi)
-
OpenWeather API (Hava durumu verileri)
-
2. SOAP API
-
XML tabanlı ve daha katı kuralları vardır.
-
Genellikle bankacılık ve güvenli kurumsal sistemlerde kullanılır.
-
Örnek: PayPal API (Ödeme işlemleri)
3. GraphQL API
-
Tek bir endpoint üzerinden istenilen veriyi almayı sağlar.
-
REST’e göre daha esnek ve performanslıdır.
-
Örnek: GitHub GraphQL API (Kod repo bilgilerini çekme)
4. WebSocket API
-
Gerçek zamanlı veri alışverişi için kullanılır.
-
Örnek: Canlı sohbet uygulamaları (WhatsApp Web, borsa verileri)
5. SDK’lar (Software Development Kit)
-
Belirli bir platform için hazır fonksiyonlar içerir.
-
Örnek: Facebook SDK (Facebook entegrasyonu), AWS SDK (Bulut servisleri)
Gerçek Hayatta API Kullanım Örnekleri
-
E-Ticaret Siteleri → Kargo firmalarının API’sini kullanarak sipariş takibi yaparlar.
-
Mobil Uygulamalar → Google Firebase API ile kullanıcı girişi sağlarlar.
-
Sosyal Medya Paylaşımı → Bir uygulama, "Twitter’da Paylaş" butonuyla API kullanarak tweet atar.
-
Uber/Taksi Uygulamaları → Google Maps API ile en kısa rotayı hesaplar.
-
Banka Uygulamaları → SOAP API kullanarak para transferi yapar.
import requests
from datetime import datetime
from xml.etree import ElementTree as ET
def get_exchange_rates(date_input):
try:
input_date = datetime.strptime(date_input, "%d.%m.%Y")
today = datetime.now()
if input_date > today:
display_date = today.strftime("%d.%m.%Y")
print(f"\nGirilen tarih ({date_input}) ileri bir tarih. Bugünün kurları gösteriliyor ({display_date}):")
url_date = today.strftime("%Y%m/%d%m%Y")
else:
display_date = date_input
print(f"\n{display_date} tarihine ait kurlar gösteriliyor:")
url_date = input_date.strftime("%Y%m/%d%m%Y")
except ValueError:
display_date = datetime.now().strftime("%d.%m.%Y")
print("\nGeçersiz tarih formatı! Bugünün kurları gösteriliyor:")
url_date = datetime.now().strftime("%Y%m/%d%m%Y")
try:
url = f"https://www.tcmb.gov.tr/kurlar/{url_date}.xml"
response = requests.get(url)
response.raise_for_status()
tree = ET.fromstring(response.content)
currencies = {}
for currency in tree.findall('Currency'):
code = currency.get('CurrencyCode')
if code in ['USD', 'EUR']:
name = currency.find('CurrencyName').text
buying = currency.find('ForexBuying').text
selling = currency.find('ForexSelling').text
currencies[code] = {
'name': name,
'buying': buying,
'selling': selling
}
print("\n{:<8} {:<25} {:<15} {:<15}".format('Kod', 'Para Birimi', 'Alış', 'Satış'))
print("-" * 65)
for code in ['USD', 'EUR']:
if code in currencies:
data = currencies[code]
print("{:<8} {:<25} {:<15} {:<15}".format(
code, data['name'], data['buying'], data['selling']
))
else:
print(f"{code} bilgisi bulunamadı")
except requests.exceptions.HTTPError:
print(f"\n{display_date} tarihine ait kur bilgisi bulunamadı.")
print("Lütfen geçerli bir tarih giriniz.")
except Exception as e:
print(f"\nBir hata oluştu: {str(e)}")
def main():
print("\n" + "="*50)
print("TCMB DÖVİZ KURLARI SORGULAMA ARACI")
print("="*50)
print("\nÇıkmak için 'q' veya 'exit' yazabilirsiniz.")
print("Örnek tarih formatı: 19.03.2024\n")
while True:
date_input = input("\nKurları görmek istediğiniz tarihi giriniz (gg.aa.yyyy): ").strip()
if date_input.lower() in ['q', 'exit']:
print("\nProgram sonlandırılıyor...")
break
get_exchange_rates(date_input)
print("\n" + "="*50)
print("Yeni bir tarih girebilir veya çıkmak için 'q' yazabilirsiniz.")
print("="*50)
if __name__ == "__main__":
main()
Bu kodun özellikleri:
-
Kullanıcı Etkileşimi:
-
Kullanıcıdan sürekli olarak tarih girişi ister
-
'q' veya 'exit' girilene kadar program çalışmaya devam eder
-
-
Tarih Kontrolleri:
-
Geçersiz tarih formatında uyarı verir ve bugünün kurlarını gösterir
-
İleri tarih girilirse bugünün kurlarını gösterir ve kullanıcıyı bilgilendirir
-
-
Veri Çekme ve Gösterme:
-
Sadece USD (Dolar) ve EUR (Euro) bilgilerini gösterir
-
Alış ve satış fiyatlarını ayrı ayrı gösterir
-
Veri bulunamazsa kullanıcıyı bilgilendirir
-
-
Kullanıcı Bilgilendirme:
-
Hangi tarihin kurlarının gösterildiğini açıkça belirtir
-
Her işlem sonrasında yeni bir sorgu yapılabileceğini hatırlatır
-
-
Hata Yönetimi:
-
HTTP hatalarını (404, 500 vb.) ele alır
-
Genel hataları yakalar ve kullanıcıyı bilgilendirir
-
Kodu çalıştırmak için gerekli kütüphane:
pip install requests
Örnek kullanım:
-
Programı çalıştırın
-
"19.03.2024" gibi bir tarih girin
-
Sonuçları görün
-
Yeni bir tarih girin veya çıkmak için 'q' yazın