API Nasıl Çalışır?
API, istemci ile sunucu arasında köprü görevi görür. Temel akış: (1) İstemci (uygulamanız) belirli bir endpoint'e HTTP isteği gönderir — örneğin GET /v1/models. (2) API sunucusu isteği doğrular ve iş mantığını çalıştırır. (3) Sunucu standart formatta (JSON/XML) yanıt döner. Bu yapı sayesinde farklı platformlardaki (iOS, Android, web) uygulamalar aynı backend ile çalışabilir. Bir API endpoint'i genellikle temel URL + kaynak yolu + sorgu parametrelerinden oluşur: `https://api.openai.com/v1/chat/completions?model=gpt-4o`.
Başlıca API Mimarileri
🔄 REST API
HTTP protokolü + JSON. GET (okuma), POST (oluşturma), PUT/PATCH (güncelleme), DELETE. Durumsuz yapısı ölçeklenebilirliği artırır. Web'deki en yaygın standart; OpenAI ve Anthropic bu mimariye dayanır.
📊 GraphQL
Facebook (2015). İstemci tam olarak ihtiyaç duyduğu alanları sorguya yazar; fazla veya eksik veri çekilmez. GitHub ve Shopify API'ları GraphQL kullanır. Tek endpoint, esnek şema.
⚡ gRPC / WebSocket
gRPC: Google'ın Protobuf tabanlı yüksek performanslı RPC çerçevesi; ML model serving'de yaygın. WebSocket: gerçek zamanlı çift yönlü bağlantı; canlı sohbet ve streaming yanıtlar için kullanılır.
API Güvenliği: Temel Mekanizmalar
- check_circle API Anahtarı (API Key): En basit yöntem. Her istekte Authorization: Bearer sk-... başlığında gönderilir. Anahtar sızdırılırsa tüm erişim tehlikeye girer; ortam değişkenine (.env) alınmalı, asla koda gömülmemeli.
- check_circle OAuth 2.0: Üçüncü taraf uygulamaların kullanıcı adına işlem yapmasını sağlayan endüstri standardı. 'Google ile giriş' düğmesi OAuth 2.0 kullanır. Erişim token'ı (access token) kısa ömürlü; yenileme token'ı (refresh token) uzun ömürlüdür.
- check_circle Rate Limiting ve Throttling: Belirli sürede maksimum istek sayısı kısıtı. Aşıldığında 429 Too Many Requests döner. Retry-After başlığı bekleme süresini belirtir. Üretim sistemlerinde üstel geri çekilme (exponential backoff) ile yeniden deneme zorunludur.
- check_circle JWT (JSON Web Token): Header.Payload.Signature formatında imzalı token. Sunucu durumsuzdur: token içindeki bilgi doğrulanır, veritabanına sorgu atılmaz. Stateless authentication için ideal; HS256 veya RS256 imza algoritması kullanılır.
Yapay Zeka API'larının Önemi
2023 sonrasında AI API ekosistemi patlama yaşadı. OpenAI `/v1/chat/completions`, Anthropic `/v1/messages`, Google Generative AI ve Mistral API, geliştiricilerin milyarlarca parametreli modelleri kendi altyapılarını kurmadan kullanmasına olanak tanır. Maliyet genellikle token başına hesaplanır (input + output). Anthropic Claude API'ında prompt caching özelliği sık kullanılan bağlamı önbelleğe alarak maliyeti %90'a kadar düşürür. LangChain ve LlamaIndex gibi çerçeveler birden fazla AI API'ını soyutlayarak kolayca değiştirilebilir hale getirir.
OpenAPI/Swagger ve Dokümantasyon Standartları
OpenAPI Specification (OAS), REST API'larını makine tarafından okunabilir JSON/YAML formatında tanımlar. Swagger UI bu spesifikasyondan otomatik interaktif dokümantasyon oluşturur; tarayıcı üzerinden endpoint'leri test etmek mümkün olur. Redoc ise daha şık bir alternatif sunar. Türkiye'deki kurumsal yazılım projelerinde Open Banking API'larından kamu e-devlet servislerine kadar OpenAPI standardı giderek zorunlu hale gelmektedir.
Sık Sorulan Sorular
- check_circle API ile SDK arasındaki fark nedir?: API, ham HTTP endpoint'leri sunar; doğrudan curl veya herhangi bir HTTP istemcisiyle çağrılabilir. SDK (Software Development Kit) ise belirli bir programlama dili için API'ı sarmalayan hazır kütüphanedir. Örneğin OpenAI'nin Python SDK'si `openai.chat.completions.create()` çağrısını HTTP isteğine dönüştürür.
- check_circle REST mi, GraphQL mi kullanmalıyım?: Kaynak tabanlı, basit CRUD operasyonları için REST; karmaşık, ilişkisel veri gereksinimleri ve istemci tarafında esnek sorgular için GraphQL tercih edilir. AI API'ları neredeyse tamamı REST kullanır; frontend ekip yoksa REST ile başlamak daha kolaydır.
- check_circle API key'i nasıl güvende tutarım?: Asla kaynak koduna (GitHub'a) gömme. `.env` dosyasına yaz, `.gitignore`'a ekle. Sunucu ortamında environment variable olarak tüket. Sızdırılmışsa ilgili platformda hemen yenile. Backend'de proxy pattern kullanarak frontend'den gizle.
- check_circle 429 Too Many Requests hatasıyla nasıl başa çıkılır?: Üstel geri çekilme (exponential backoff) uygula: ilk hata sonrası 1s, sonra 2s, 4s, 8s bekle. Retry-After başlığını kontrol et. Üretim sisteminde kuyruklama (queue) ile eşzamanlı istek sayısını sınırla. Token bucket veya leaky bucket algoritması ile rate limit yönetimi yapılabilir.
- check_circle Streaming API nasıl çalışır?: OpenAI ve Anthropic gibi AI API'ları `stream=true` parametresiyle Server-Sent Events (SSE) akışı döner. Model yanıtı bitirmeden token token istemciye gönderilir; bu sayede kullanıcı ilk tokeni saniyeler içinde görür. Python'da `for chunk in client.messages.stream(...)` ile tüketilir.