class API Türleri ve Kullanım Senaryoları extends Post
@created_at(
"2025-02-14 12:43"
)
@tag(
"api"
)
### **API Türleri ve Kullanım Senaryoları**
API'ler farklı türlerde olabilir ve her birinin kendine özgü bir yapısı ve kullanım alanı vardır. Aşağıda API türlerini **hiyerarşik bir ağaç** şeklinde oluşturuyorum, böylece **terim mi, tool mu, veri formatı mı** gibi ayrımları daha net görebileceksiniz.
---
## **🌳 API Türleri Ağacı**
```
📂 API (Application Programming Interface)
│
├── 📌 **Web API'leri** (HTTP üzerinden çalışır)
│ │
│ ├── 🌍 **REST API (Representational State Transfer)**
│ │ ├── JSON ve XML destekler
│ │ ├── Stateless (her istek bağımsızdır)
│ │ ├── CRUD işlemleri için HTTP metodlarını (GET, POST, PUT, DELETE) kullanır
│ │ └── Örnek: https://jsonplaceholder.typicode.com/posts
│ │
│ ├── 📦 **SOAP API (Simple Object Access Protocol)**
│ │ ├── XML kullanır
│ │ ├── Ağır ve karmaşık, genellikle bankacılık gibi güvenliğin kritik olduğu yerlerde
│ │ ├── Örnek: Banka havale API'leri, eski ERP sistemleri
│ │
│ ├── 📊 **GraphQL API**
│ │ ├── JSON formatında veri alır/gönderir
│ │ ├── Veri isteklerinde daha esnektir, istemci ihtiyacı kadar veri çeker
│ │ ├── Örnek: GitHub GraphQL API (https://api.github.com/graphql)
│ │
│ ├── 🔄 **gRPC (Google Remote Procedure Call)**
│ │ ├── **Protocol Buffers (protobuf)** kullanır (JSON/XML yerine daha hızlı bir format)
│ │ ├── Performans açısından çok hızlı ve hafif
│ │ ├── Mikroservisler arası iletişimde yaygın
│ │ └── Örnek: Kubernetes içi servis iletişimi
│ │
│ ├── 📨 **WebSocket API**
│ │ ├── Gerçek zamanlı (real-time) veri akışı sağlar
│ │ ├── Örnek: Canlı sohbet, online oyunlar, borsa uygulamaları
│ │ └── Örnek: Binance WebSocket API (https://api.binance.com)
│ │
│ ├── 🔗 **RPC (Remote Procedure Call) API**
│ │ ├── Direkt olarak fonksiyon çağırır
│ │ ├── JSON-RPC, XML-RPC gibi versiyonları var
│ │ └── Örnek: Bitcoin JSON-RPC API
│ │
│ ├── 🔐 **OAuth API (Kimlik Doğrulama API'leri)**
│ │ ├── Kimlik doğrulama ve yetkilendirme sağlar
│ │ ├── Örnek: Google, Facebook OAuth API'leri
│ │ └── Örnek: https://oauth.net/2/
│
├── 🖥️ **Yerel (Local) API'ler**
│ ├── Windows, MacOS veya Linux sistem çağrıları için API'ler
│ ├── Örnek: Windows API (Win32)
│
└── 🏢 **Donanım API'leri (Hardware API)**
├── Kamera, mikrofon, GPS gibi cihazlarla iletişim kuran API'ler
├── Örnek: Web Bluetooth API, Web USB API
```
---
## **📌 API Türleri Detaylı Açıklamalar**
Ağaç yapısındaki başlıkları detaylı olarak açıklıyorum.
### **1️⃣ REST API (Representational State Transfer)**
- JSON ve XML destekler.
- HTTP metodları ile çalışır (**GET, POST, PUT, DELETE**).
- **Stateless** çalışır (her istek bağımsızdır, önceki istekten veri taşımaz).
- **Kullanımı kolay ve hızlıdır.**
### **2️⃣ SOAP API (Simple Object Access Protocol)**
- XML formatında çalışır.
- **REST’e göre daha ağır ve karmaşıktır.**
- **Güvenlik ve hata yönetimi daha güçlüdür**, özellikle bankacılık gibi sektörlerde kullanılır.
- **Stateless veya Stateful olabilir.**
- Daha **eski sistemlerde kullanılır** ama hala bazı sektörlerde tercih edilir.
### **3️⃣ GraphQL API**
- **REST API’nin esnek versiyonu** olarak düşünülebilir.
- JSON kullanır ama REST gibi sabit endpoint’leri yoktur.
- **İhtiyacın olan veriyi çekebilirsin, fazlalık veri gelmez.**
- **Tek bir endpoint vardır**: `/graphql`
### **4️⃣ gRPC (Google Remote Procedure Call)**
- **Google tarafından geliştirildi** ve **Protocol Buffers (protobuf)** kullanır.
- **JSON yerine daha hızlı bir format (protobuf) kullanır.**
- **REST ve GraphQL’e göre daha performanslıdır.**
- **Mikroservisler arası iletişimde yaygın kullanılır.**
### **5️⃣ WebSocket API**
- **Gerçek zamanlı (real-time) veri aktarımı yapar.**
- **HTTP gibi her istekte sunucuya bağlanmaz, sürekli bağlantı açık kalır.**
- Chat uygulamaları, canlı borsa verileri, anlık bildirim sistemleri için kullanılır.
### **6️⃣ JSON-RPC ve XML-RPC**
- **RPC (Remote Procedure Call) doğrudan fonksiyon çağırmak için kullanılır.**
- **JSON-RPC** → JSON formatında.
- **XML-RPC** → XML formatında.
---
## **🚀 Sonuç**
- **REST API** → En yaygın kullanılan, JSON tabanlı.
- **SOAP API** → XML tabanlı, eski sistemler ve bankacılık için.
- **GraphQL API** → REST’e göre daha esnek, JSON kullanır.
- **gRPC** → Performans odaklı, mikroservisler için.
- **WebSocket API** → Gerçek zamanlı veri aktarımı.
- **JSON-RPC & XML-RPC** → RPC tabanlı API’ler.
Eğer **web geliştirme yapıyorsanız**, **REST veya GraphQL API** en mantıklı seçimdir.
Eğer **yüksek performanslı mikroservisler yapıyorsanız**, **gRPC** iyi bir seçenektir.
Eğer **gerçek zamanlı veri ile çalışıyorsanız**, **WebSocket kullanmalısınız.** 🚀