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 |
|---|---|---|
| GET | Veri okuma | GET /users - Tüm kullanıcılar |
| POST | Yeni kayıt oluşturma | POST /users - Yeni kullanıcı |
| PUT | Tüm kaydı güncelleme | PUT /users/1 - Kullanıcı güncelle |
| PATCH | Kısmi güncelleme | PATCH /users/1 - Belirli alanları güncelle |
| DELETE | Silme | DELETE /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
- HTTPS kullanın
- Tutarlı naming convention
- Anlamlı hata mesajları
- API dokümantasyonu (Swagger/OpenAPI)
- Input validation
- Rate limiting
- Logging ve monitoring
- 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.