API testi, bir uygulamanın arayüzü olmadan, doğrudan sunduğu HTTP endpoint'lerine istek göndererek doğru veriyi, doğru durum kodunu ve doğru hata davranışını döndürüp döndürmediğini kontrol etmektir. En yaygın araçlar Postman (elle test), REST Assured (Java ile otomasyon) ve Playwright'ın API modülüdür. Arayüz testinden farkı, veritabanı ve iş mantığına arayüzün üzerinden geçmeden, çok daha hızlı ve kararlı şekilde ulaşmasıdır — bu yüzden regresyon testlerinin önemli bir kısmı API seviyesinde yazılır.
API testini önce API'yi Java, Express ve NestJS ile yazarak öğren; sonra DevTools, Swagger, Postman, REST Assured ve Playwright ile test et.
API'yi hiç görmemiş bir tester için: önce API'yi kendi ellerinle Java/Spring, Express ve NestJS ile yaz, sonra DevTools Network, Swagger, Postman, REST Assured ve Playwright ile test et. Her adımda "geliştirici bu satırı unutsaydı hangi bug doğardı?" sorusunu cevaplayan Defect Doğum Anı kutularıyla, tek örnek API (/api/v1/bugs) üzerinden.
Bu sayfada neler öğreneceksin
🌐 A1 · API Nedir? — İstemci, Sunucu, Sözleşme — Bir API, restoranın **mutfak penceresi** gibidir: sen (istemci) salonda oturursun, mutfağa (sunucu) doğrudan giremezsin — arada bir pencere (API) ve bir **menü** (sözleşme/contract) vardır. Menüde ne isteyebileceğin (`GET /bugs`), ne göndermen gerektiği (bir `
📤 A2 · HTTP Request Anatomisi — Bir HTTP request'i, **kargo gönderisine** benzer: bir **eylem etiketi** (method — al/gönder/sil), bir **adres** (URL — kime), **gönderi notları** (header'lar — nasıl paketlensin, kim gönderiyor) ve varsa **kutunun içindeki paket** (body — taşınan veri). Peki a
📥 A3 · HTTP Response Anatomisi — Bir HTTP response'u, bir **teslimat makbuzu + paket** gibidir: en üstte büyük bir **damga** (status code — işlem başarılı mı, 200/201/404/500) vardır, altında **teslimat notları** (header'lar — içerik tipi, önbellek, boyut) ve en sonda **paketin kendisi** (bod
🔧 A4 · HTTP Metotları: GET / POST / PUT / PATCH / DELETE — HTTP metotları, bir bug kaydı üzerindeki **eylem fiilleridir**; tıpkı bir dosya dolabındaki hareketler gibi: **GET** = klasörü aç ve OKU (hiçbir şeyi değiştirmeden), **POST** = yeni bir kağıt EKLE, **PUT** = kağıdı komple YENİSİYLE DEĞİŞTİR, **PATCH** = kağıdı
🚦 A5 · Status Kodları: 2xx / 3xx / 4xx / 5xx — Status kodları, sunucunun **trafik lambası**dır ama üç renkli değil, dört mahalleli: **2xx** = yeşil (başardım), **3xx** = tabela (başka yola git — yönlendirme), **4xx** = "senin hatan" (request yanlış: eksik alan, yanlış yol, yetkisiz), **5xx** = &q
📋 A6 · Header'lar: Content-Type, Accept, Authorization — Header'lar, bir kargonun üstündeki **etiketler ve gümrük evraklarıdır**: paketin içine (body) dokunmadan "bu ne, nasıl açılmalı, kim gönderiyor, saklanabilir mi" sorularını cevaplarlar. **Content-Type** = "içerideki paket JSON'dır" (sunucu
🧩 A7 · JSON Yapısı: object, array, nested, null — JSON, verinin **iç içe geçen kutular sistemidir**: bir **object** `{}` etiketli bir kutudur (anahtar→değer), bir **array** `[]` sıralı bir raftır (aynı tip kutular yan yana), **nested** yapı kutunun içindeki kutudur, ve iki sinsi durum vardır — `null` (kutu va
☕ B1 · Proje İskeleti: Maven, spring-boot-starter-web — Bir Spring Boot projesi kurmak, bir **restoran açmadan önce mutfağı döşemek** gibidir: henüz tek bir yemek (endpoint) yapmadan önce ocağı, tezgahı ve elektriği (web sunucusu, dependency'ler, çalıştırma mekanizması) hazırlarsın. `spring-boot-starter-web` bir &q
Sık Sorulan Sorular
API testi nasıl yapılır?
API testi, bir uygulamanın arayüzü olmadan, doğrudan HTTP endpoint'lerine istek göndererek doğru veriyi, doğru durum kodunu ve doğru hata davranışını döndürüp döndürmediğini kontrol etmektir. En yaygın araçlar Postman (elle test) ve REST Assured (Java ile otomasyon).
API testi ile UI testi arasındaki fark nedir?
API testi veritabanı ve iş mantığına arayüzün üzerinden geçmeden ulaşır, bu yüzden çok daha hızlı ve kararlıdır; UI testi ise kullanıcının gerçekte gördüğü ekranı doğrular ama tarayıcı render'ına bağımlı olduğu için daha yavaş ve daha kırılgandır.
API testi öğrenmek ne kadar sürer?
Postman ile temel GET/POST isteklerini bir günde öğrenebilirsin. REST Assured ile Java tabanlı otomasyon, şema doğrulama ve authentication dahil mülakat seviyesine gelmek genelde 3-4 hafta düzenli pratik gerektirir.
API testi için hangi araçlar ücretsizdir?
Postman'in temel özellikleri, REST Assured (açık kaynak Java kütüphanesi) ve tarayıcının kendi DevTools Network paneli tamamen ücretsizdir. Postman'in takım/otomasyon özellikleri (Newman CI entegrasyonu hariç) bazı senaryolarda ücretli plana geçer.
API testinde en sık yapılan hata nedir?
Yalnızca durum kodunu (`200 OK`) kontrol edip response body'nin gerçek içeriğini doğrulamamak. Sunucu 200 dönebilir ama yanlış veriyi veya eksik bir alanı döndürüyor olabilir — bu yüzden şema ve alan bazlı assertion şarttır.