ULUSOY_DIGITAL
← Tüm Yazılar
Backend

API Entegrasyonu Nedir? REST API Geliştirme Rehberi

Ulusoy Digital 01 April 2026 760 görüntülenme
API Entegrasyonu Nedir? REST API Geliştirme Rehberi

Modern yazılım geliştirmede API (Application Programming Interface) vazgeçilmez bir bileşendir. Mobil uygulamalar, web siteleri ve üçüncü parti servisler API'ler aracılığıyla iletişim kurar. Bu yazıda REST API'nin temellerini ve best practice'leri inceleyeceğiz.

API Nedir?

API, iki yazılımın birbiriyle iletişim kurmasını sağlayan arayüzdür. Bir restorana benzetebiliriz: Garson (API), mutfak (sunucu) ile müşteri (istemci) arasındaki iletişimi sağlar. Müşteri mutfağa girmez, garson aracılığıyla sipariş verir.

REST API Nedir?

REST (Representational State Transfer), web API'ler için en yaygın kullanılan mimari stildir. HTTP protokolünü kullanır ve şu prensiplere dayanır:

  • Stateless: Her istek bağımsızdır, sunucu client state tutmaz
  • Client-Server: Frontend ve backend ayrı
  • Cacheable: Yanıtlar cache'lenebilir
  • Uniform Interface: Tutarlı URL yapısı ve HTTP metodları

HTTP Metodları

MetodİşlemÖrnek
GETVeri okumaGET /users - Tüm kullanıcılar
POSTYeni kayıt oluşturmaPOST /users - Yeni kullanıcı
PUTTüm kaydı güncellemePUT /users/1 - Kullanıcı güncelle
PATCHKısmi güncellemePATCH /users/1 - Belirli alanları güncelle
DELETESilmeDELETE /users/1 - Kullanıcı sil

Endpoint Tasarımı

URL Yapısı

  • Kaynaklar çoğul isim olmalı: /users, /products, /orders
  • Hiyerarşi mantıklı olmalı: /users/1/orders (1 numaralı kullanıcının siparişleri)
  • Fiil kullanmayın: /getUsers yerine GET /users
  • Küçük harf ve tire kullanın: /order-items

Örnek API Tasarımı

GET    /api/v1/products           # Tüm ürünler
GET    /api/v1/products/123       # Tek ürün
POST   /api/v1/products           # Yeni ürün
PUT    /api/v1/products/123       # Ürün güncelle
DELETE /api/v1/products/123       # Ürün sil
GET    /api/v1/products/123/reviews  # Ürün yorumları

HTTP Status Kodları

  • 200 OK: Başarılı GET, PUT, PATCH
  • 201 Created: Başarılı POST
  • 204 No Content: Başarılı DELETE
  • 400 Bad Request: Hatalı istek
  • 401 Unauthorized: Authentication gerekli
  • 403 Forbidden: Yetki yok
  • 404 Not Found: Kaynak bulunamadı
  • 422 Unprocessable Entity: Validation hatası
  • 500 Internal Server Error: Sunucu hatası

Authentication

1. API Key

Basit uygulamalar için. Header'da gönderilir:

X-API-Key: abc123xyz

2. JWT (JSON Web Token)

Stateless authentication için popüler seçim:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

3. OAuth 2.0

Üçüncü parti entegrasyonlar için (Google, Facebook login).

Versiyonlama

API değişikliklerini yönetmek için versiyonlama şart:

  • URL versiyonu: /api/v1/users (önerilen)
  • Header versiyonu: Accept: application/vnd.api+json;version=1
  • Query parameter: /api/users?version=1

Response Formatı

Başarılı Yanıt

{
  "success": true,
  "data": {
    "id": 1,
    "name": "Ahmet",
    "email": "ahmet@example.com"
  }
}

Hata Yanıtı

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Email adresi geçersiz",
    "details": [
      {"field": "email", "message": "Geçerli bir email girin"}
    ]
  }
}

Pagination

Büyük veri setleri için sayfalama:

GET /api/v1/products?page=2&per_page=20

Response:

{
  "data": [...],
  "meta": {
    "current_page": 2,
    "per_page": 20,
    "total": 150,
    "last_page": 8
  }
}

Rate Limiting

API'yi kötüye kullanımdan korumak için:

  • X-RateLimit-Limit: 100
  • X-RateLimit-Remaining: 95
  • X-RateLimit-Reset: 1620000000

Best Practices

  1. HTTPS kullanın
  2. Tutarlı naming convention
  3. Anlamlı hata mesajları
  4. API dokümantasyonu (Swagger/OpenAPI)
  5. Input validation
  6. Rate limiting
  7. Logging ve monitoring
  8. Versiyonlama

Sonuç

İyi tasarlanmış bir REST API, uygulamanızın temel yapı taşıdır. Tutarlı, güvenli ve dokümante edilmiş API'ler geliştirmek, hem frontend ekibinin hem de üçüncü parti entegrasyonların işini kolaylaştırır.

Ulusoy Digital olarak Laravel ve Node.js ile ölçeklenebilir REST API'ler geliştiriyoruz. Yemek Butonu, emlak sistemleri ve e-ticaret projelerinde API tasarımı konusunda geniş deneyime sahibiz.