Postman ile API isteği göndermek, bir HTTP isteğini yapılandırılmış ve tekrar edilebilir biçimde oluşturup sunucudan dönen yanıtı satır satır incelemek anlamına gelir. Kısaca: metodu (GET, POST, PUT, DELETE) seçersiniz, endpoint'i yazarsınız, gerekirse header ve body eklersiniz, Send'e basarsınız ve karşınıza gelen durum kodu, yanıt gövdesi ile başlıkları okuyarak API'nin beklediğiniz gibi çalışıp çalışmadığını anlarsınız. Bu rehberde HTTP metotlarını bilen ama Postman arayüzünü hiç açmamış biri için, ilk isteğinizi göndermekten yanıtı doğru yorumlamaya kadar adım adım bir yol haritası bulacaksınız.
Postman Nedir ve API Testinde Ne İşe Yarar?
Postman, HTTP isteklerini tarayıcının adres çubuğuna elle yazmak ya da terminal üzerinden komut satırı araçlarıyla uğraşmak yerine, görsel bir arayüz üzerinden hazırlayıp göndermenizi sağlayan bağımsız bir araçtır. Bir isteğin metodunu, hedef adresini, başlıklarını ve gövdesini ayrı ayrı alanlara girer, gönder tuşuna basar ve yanıtı yapılandırılmış biçimde görürsünüz. Bu, tarayıcı adres çubuğuna yalnızca GET isteği yazabilmenin ötesine geçer; POST, PUT, DELETE gibi gövde ve başlık gerektiren istekleri de kolayca kurgulamanızı sağlar.
Backend geliştirenlerin kodu bitirmeden önce API'yi Postman ile test etmesinin temel nedeni, arayüz (frontend) henüz hazır olmasa bile sunucunun doğru çalışıp çalışmadığını izole biçimde doğrulayabilmektir. Bir endpoint'i frontend'e bağlamadan önce Postman üzerinden istek göndermek, hatanın sunucu tarafında mı yoksa arayüz tarafında mı olduğunu netleştirir; bu da hata ayıklama sürecini önemli ölçüde kısaltır. Ayrıca ekip içinde farklı geliştiricilerin aynı API'yi aynı şekilde test edebilmesi, isteklerin koleksiyonlar hâlinde saklanıp paylaşılabilmesiyle mümkün olur.
Yeni başlayan biri için Postman'in en rahatlatıcı yanı, kod yazmadan da bir API'nin davranışını gözlemleyebilmenizdir. Backend tarafında henüz hiçbir satır kod olmasa bile, herkese açık test API'leri üzerinden pratik yaparak GET ve POST isteklerinin mantığını, header'ların işlevini ve durum kodlarının anlamını sıfırdan öğrenebilirsiniz. Bu, hem kavramları somutlaştırır hem de gerçek bir projeye geçmeden önce özgüven kazandırır.
Bir API İsteğinin Temel Bileşenleri
Postman'de her istek, birkaç temel bileşenin bir araya gelmesiyle anlam kazanır. Bu bileşenlerden herhangi biri eksik ya da yanlış girildiğinde sunucudan beklenmeyen bir yanıt almanız kaçınılmazdır. HTTP metotlarının mantığını kavramış olmak burada büyük avantaj sağlar; Postman yalnızca bu mantığı görsel bir arayüze taşır. Konuyu sıfırdan ve düzenli biçimde öğrenmek isteyenler canlı yazılım eğitimi programları kapsamında HTTP ve backend temellerini adım adım işleyebilir.
- HTTP metodu: GET veri okumak, POST yeni kayıt oluşturmak, PUT mevcut kaydı güncellemek, DELETE ise silmek için kullanılır; yanlış metot seçimi sunucunun isteği tamamen reddetmesine yol açabilir.
- Endpoint / URL yapısı: İsteğin gönderileceği tam adrestir; genellikle kaynak adını ve gerekiyorsa bir kimlik (id) içerir, örneğin bir kullanıcı kaynağına ait tekil kaydı belirtmek için adresin sonuna id eklenir.
- Header'lar: İsteğe eşlik eden meta bilgilerdir.
Content-Type: application/jsongönderilen gövdenin JSON formatında olduğunu bildirir;Authorizationise isteği yapan kullanıcının kimliğini veya erişim izninin taşınmasını sağlar. - Query parametreleri: URL'nin sonuna eklenen ve genellikle filtreleme, sıralama veya sayfalama amacıyla kullanılan anahtar-değer çiftleridir.
- Request body: Özellikle POST ve PUT isteklerinde sunucuya gönderilen veriyi taşır; çoğu modern API'de bu veri JSON formatında yapılandırılır.
Bu beş bileşenin her biri isteğin anlamını değiştirir: aynı endpoint'e farklı bir metotla gitmek tamamen farklı bir işlem tetikleyebilir, eksik bir header sunucunun isteği anlayamamasına neden olabilir, yanlış biçimlendirilmiş bir body ise en sık karşılaşılan hata kaynaklarından biridir.
İlk GET İsteğini Oluşturma: Adım Adım Kurulum
GET isteği, herhangi bir gövde göndermeden yalnızca veri okumaya yaradığı için Postman'e başlarken en uygun ilk adımdır. Aşağıdaki sıra, yeni bir isteği sıfırdan oluşturup yanıtı incelemeye kadar izlenecek temel akışı gösterir.
- Postman içinde yeni bir istek sekmesi açın; bu sekme size metot, adres ve gövde alanlarını bir arada sunar.
- İstek metodu olarak GET seçeneğinin işaretli olduğundan emin olun; GET, varsayılan olarak seçili gelse bile kontrol etmek küçük hataları önler.
- Adres alanına test etmek istediğiniz endpoint'i yazın; örneğin herkese açık bir test servisinin kullanıcı listesi adresini girebilirsiniz.
- Gerekiyorsa Headers sekmesinden ek bir başlık ekleyin; basit bir açık API için genellikle bu adım GET aşamasında zorunlu değildir.
- Send düğmesine basarak isteği gönderin ve Postman'in isteği sunucuya iletmesini bekleyin.
- Ekranın alt kısmında beliren yanıt panelinde durum kodunu, yanıt süresini ve dönen veriyi inceleyin; veri genellikle JSON formatında, okunabilir biçimde listelenir.
- Aynı isteği farklı bir id veya parametreyle tekrar deneyerek yanıtın nasıl değiştiğini gözlemleyin; bu tekrar, GET mantığını pekiştirmenin en hızlı yoludur.
Bu yedi adımı birkaç kez farklı endpoint'lerle tekrarladığınızda, GET isteğinin nasıl çalıştığı elinize otururken gövde göndermeyi gerektiren POST gibi metotlara geçmek de çok daha kolay hâle gelir.
POST İsteğiyle Body Göndermek: JSON ve Header Ayarları
GET isteği veri okumak için yeterliyken, bir kaynağı oluşturmak veya bir sisteme veri göndermek istediğinizde devreye POST isteği girer. Bu noktada Postman'de karşınıza çıkan yeni bir kavram vardır: Body sekmesi. Adres çubuğunun hemen altında yer alan bu sekmeye tıkladığınızda, isteğe bir gövde (body) eklemenizi sağlayan seçenekler açılır. Yeni başlayanların en çok kafa karıştıran noktası burada "raw", "form-data", "x-www-form-urlencoded" gibi birkaç seçenek görmektir. Modern API'lerin büyük çoğunluğu JSON formatında veri beklediği için, sizin de yapmanız gereken şey raw seçeneğini işaretlemek ve sağdaki açılır menüden JSON formatını seçmektir.
Bu seçim yapıldıktan sonra altında beliren boş alana, göndermek istediğiniz veriyi düz metin gibi değil, geçerli bir JSON nesnesi olarak yazarsınız. Örneğin bir kullanıcı kaydı oluşturan bir endpoint'i test ediyorsanız, gövde şu şekilde görünebilir:
{
"ad": "Ayşe",
"soyad": "Yılmaz",
"email": "[email protected]",
"sifre": "guclu-bir-sifre123"
}
Burada dikkat edilmesi gereken ayrıntı, anahtarların ve metin değerlerinin çift tırnak içinde olması, sayısal değerlerin tırnaksız yazılması ve son elemandan sonra virgül bırakılmamasıdır. Küçük bir sözdizimi hatası bile sunucunun isteği reddetmesine yol açabilir.
Body kısmını doldurmak tek başına yeterli değildir; sunucuya bu verinin JSON formatında geldiğini bildirmeniz gerekir. Bunun için Headers sekmesine geçip Content-Type anahtarına application/json değerini eklersiniz. Postman'in güncel sürümlerinin çoğu, raw/JSON seçildiğinde bu header'ı otomatik ekler; ancak elle kontrol etmeyi alışkanlık hâline getirmek, ileride farklı araçlarla veya farklı istemcilerle çalışırken sizi büyük hatalardan korur. Çünkü sunucu tarafında, örneğin bir Flask veya FastAPI ile yazılmış bir endpoint, gelen isteğin gövdesini JSON olarak ayrıştırmadan önce genellikle bu header'ı kontrol eder; header eksikse istek hiç işlenmeden hata dönebilir. Bu yüzden Postman'de doğru body ve header kombinasyonunu kurmak, aslında backend tarafında yazdığınız kodun gerçek dünyada nasıl bir istemciyle karşılaşacağını simüle etmektir. Bu mantığı Python tarafında somutlaştırmak isteyenler için birebir Python dersleri kapsamında hem endpoint yazımı hem de bu endpoint'lerin doğru şekilde test edilmesi adım adım işlenir.
HTTP Durum Kodlarını Anlamak
Bir isteği gönderdikten sonra Postman ekranının sağ üst köşesinde beliren üç haneli sayı, aslında sunucunun size verdiği en özet cevaptır. Bu sayıya HTTP durum kodu denir ve her rakam grubu farklı bir anlam taşır: 2xx başarıyı, 4xx istemci kaynaklı bir hatayı, 5xx ise sunucu tarafında bir sorunu işaret eder. Yeni başlayanlar genellikle sadece "çalıştı mı çalışmadı mı" diye bakar, ama durum kodunun kendisi hatanın nerede aranması gerektiğini söyler.
| Kod | Anlamı | Ne Zaman Alınır |
|---|---|---|
| 200 | OK | İstek başarıyla işlendiğinde, genellikle GET isteklerinde |
| 201 | Created | POST isteğiyle yeni bir kayıt başarıyla oluşturulduğunda |
| 400 | Bad Request | Gönderilen JSON bozuk veya beklenen alanlar eksik olduğunda |
| 401 | Unauthorized | Kimlik doğrulama bilgisi eksik veya geçersiz olduğunda |
| 404 | Not Found | İstek yapılan kaynak veya endpoint adresi bulunamadığında |
| 500 | Internal Server Error | Sunucu tarafındaki kodda beklenmeyen bir hata oluştuğunda |
Bu kodları ezberlemek yerine mantığını kavramak daha kalıcıdır: 4xx serisi size "sen bir şey eksik ya da yanlış gönderdin" derken, 5xx serisi "sunucudaki kod hata verdi, bu senin isteğinle ilgili değil" anlamına gelir. Bir POST isteğinde 400 alıyorsanız önce gönderdiğiniz JSON gövdesini, 401 alıyorsanız kimlik doğrulama bilgilerinizi, 500 alıyorsanız ise sunucu tarafındaki kod akışını gözden geçirmeniz gerekir. Bu ayrım, özellikle backend geliştirirken hatanın istemci mi yoksa sunucu mu kaynaklı olduğunu saniyeler içinde anlamanızı sağlar.
Yanıtı Doğru Okumak: Body, Header ve Durum Kodunu Birlikte Değerlendirme
Bir API yanıtını doğru yorumlamak, sadece durum koduna bakmakla bitmez; Postman'in alt panelinde gördüğünüz üç unsuru birlikte değerlendirmeniz gerekir: durum kodu, response body ve response header'ları. Yeni başlayanların sıkça düştüğü tuzak, 200 gördüğü anda isteğin tamamen sorunsuz olduğunu düşünmek ya da tam tersi 400 gördüğünde paniklemektir. Oysa sistemli bir hata ayıklama alışkanlığı, her zaman aynı sırayla ilerler.
Önce durum koduna bakılır; bu size hatanın genel kategorisini verir. Ardından response body incelenir, çünkü çoğu iyi tasarlanmış API, hata durumunda size sadece "400" demekle kalmaz, body içinde hangi alanın eksik veya hatalı olduğunu açıklayan bir JSON mesajı da döner. Örneğin bir kayıt isteğinde email alanı boş bırakılmışsa, dönen body içinde bunun açıkça belirtilmesi beklenir. Son olarak response header'ları kontrol edilir; burada özellikle Content-Type, oturum bilgisi taşıyan çerezler veya hız sınırlamasıyla ilgili bilgiler yer alabilir ve bazen görünürdeki hatanın asıl kaynağı buradadır.
Bu üçünü birlikte okuma alışkanlığı, ilk denemede kolay gelmeyebilir; özellikle karmaşık bir endpoint'te hangi bilginin nereden geldiğini ayırt etmek zaman alabilir. Bu noktada takılıp kalmak yerine, gerçek bir proje üzerinde adım adım ilerlemek büyük fark yaratır. İhtiyaç duyanlar için 1-1 özel ders desteği, tam olarak bu tür pratik takılmaları birebir çözmeyi ve API test sürecini sağlam bir alışkanlığa dönüştürmeyi hedefler. Zamanla bu üç unsuru aynı anda tarayıp saniyeler içinde hatanın kaynağını tahmin edebilir hâle gelirsiniz; bu da hem kendi kodunuzu hem de üçüncü taraf API'leri test ederken size ciddi bir hız kazandırır.
Örnek JSON İstek ve Yanıt Gövdesi
Teoriyi somutlaştırmanın en hızlı yolu, gerçek bir örnek üzerinden ilerlemektir. Diyelim ki bir öğrenci kaydı oluşturan bir API endpoint'ine POST isteği gönderiyorsunuz. İstek gövdesinde yalnızca sunucunun ihtiyaç duyduğu alanları göndermeniz yeterlidir; sunucu tarafında otomatik üretilen değerleri (kimlik numarası, oluşturulma tarihi gibi) siz göndermezsiniz.
Aşağıdaki gibi bir JSON gövdesiyle isteği gönderdiğinizi varsayalım:
{
"username": "berk_ogrenci",
"email": "[email protected]",
"role": "student",
"active": true
}
Sunucu bu isteği işledikten sonra, genellikle sizin gönderdiğiniz alanlara ek olarak kendi ürettiği bilgileri de içeren bir yanıt döner:
{
"id": 4821,
"username": "berk_ogrenci",
"email": "[email protected]",
"role": "student",
"active": true,
"createdAt": "2026-01-14T09:32:11Z"
}
Bu iki gövdeyi yan yana incelemek, API mantığını kavramanın en pratik yoludur. Request body'de sadece istemcinin bildiği veriler vardır; response body'de ise sunucunun eklediği id ve createdAt gibi alanlar da yer alır. Postman'de bu iki paneli aynı ekranda görebildiğiniz için, gönderdiğiniz veriyle sunucunun ürettiği veriyi karşılaştırmak saniyeler sürer. Alan adlarındaki küçük bir yazım farkı (örneğin username yerine userName yazmak) bile sunucunun isteği reddetmesine ya da eksik veri kaydetmesine yol açabileceğinden, gönderdiğiniz JSON'ı her zaman API dokümantasyonundaki şemayla birebir karşılaştırma alışkanlığı kazanmanız önemlidir.
Postman Testlerinin Backend Geliştirme Sürecindeki Yeri
Bir backend endpoint'i yazmak ile onun gerçekten beklendiği gibi çalıştığını kanıtlamak birbirinden farklı iki iştir. Python tarafında Flask veya FastAPI ile, Java tarafında Spring ile yazılmış bir endpoint'i tarayıcıya güvenerek test etmek çoğu zaman yetersiz kalır; çünkü tarayıcı adres çubuğu yalnızca basit GET isteklerini destekler, POST, PUT veya DELETE gibi metotları header ve body ile birlikte göndermenize izin vermez. Postman, tam da bu boşluğu doldurarak geliştiricinin backend kodunu frontend'e bağlamadan önce izole biçimde doğrulamasını sağlar.
Bir Spring uygulamasında yazılan @PostMapping ile işaretlenmiş bir metodun doğru çalıştığını görmek için önce Postman üzerinden isteği manuel gönderip yanıtı incelemek, hatanın frontend'den mi backend'den mi kaynaklandığını anlamayı büyük ölçüde kolaylaştırır. Aynı mantık FastAPI veya Flask ile yazılan bir Python servisinde de geçerlidir: endpoint'i geliştirdikten hemen sonra Postman ile test etmek, kodu deploy etmeden önce olası hataları erken yakalamanın en pratik yoludur. Bu nedenle Postman becerisi tek bir dile bağlı bir yetenek değil, backend geliştirmenin dilden bağımsız ortak dilidir; hem Python hem bire bir Java dersleri alan öğrenciler için aynı derecede temel bir araçtır.
Ekip içinde çalışan geliştiriciler için bu alışkanlığın bir başka faydası da iletişimdir. Bir isteği ve aldığınız yanıtı Postman üzerinden kolayca paylaşabildiğinizde, "bende çalışıyor ama sende çalışmıyor" tartışmaları yerini somut, tekrarlanabilir örneklere bırakır. Bu da hem bireysel öğrenme sürecinde hem de gerçek bir ekip ortamında zaman kazandıran, güven veren bir pratiktir.
Yeni Başlayanların Sık Yaptığı Hatalar
Postman'e yeni başlayanların büyük çoğunluğu, aracın kendisinden değil, HTTP isteğinin bileşenlerini eksiksiz kurmamaktan kaynaklanan hatalarla karşılaşır. Bu hataların çoğu, ne olduğunu bir kez görüp anladıktan sonra bir daha tekrarlanmayacak kadar basittir.
- Yanlış veya eksik Content-Type ayarı: JSON gönderdiğinizi düşünüp Headers sekmesinde
Content-Typedeğerini form verisi olarak bırakmak, sunucunun gövdeyi hiç okuyamamasına yol açar. Çözüm: Body sekmesinde "raw" seçip formatı JSON olarak belirlediğinizde Postman bu başlığı genellikle otomatik ayarlar; yine de Headers sekmesinden değeri kontrol etmek iyi bir alışkanlıktır. - Eksik veya hatalı Authorization header'ı: Korumalı bir endpoint'e token göndermeyi unutmak ya da süresi dolmuş bir token kullanmak, sürekli 401 hatası almanıza neden olur. Çözüm: Authorization sekmesinden uygun türü (Bearer Token, API Key vb.) seçip güncel değeri girmek ve token'ın süresini kontrol etmek.
- Geçersiz JSON formatı: Fazladan virgül bırakmak, tırnak işaretlerini unutmak veya tek tırnak kullanmak, sunucunun gövdeyi ayrıştıramamasına ve genellikle 400 Bad Request yanıtına yol açar. Çözüm: Postman'in body editöründeki biçim doğrulama uyarılarına dikkat etmek ve göndermeden önce JSON'ı gözden geçirmek.
- Yanlış HTTP metodu seçmek: Bir kayıt oluşturma endpoint'ine yanlışlıkla GET göndermek ya da tam tersini yapmak, beklenmedik hatalara yol açar. Çözüm: İstek göndermeden önce dokümantasyonda o endpoint için tanımlı metodu tekrar teyit etmek.
Bu hataların hiçbiri deneyim eksikliğinden değil, dikkat eksikliğinden kaynaklanır ve birkaç istekten sonra otomatik olarak fark edilir hale gelir. Kendi seviyenizi görmek ve hangi konularda daha çok pratik yapmanız gerektiğini anlamak isterseniz ücretsiz kodlama bilgisi testi size yol gösterebilir.
Sık Sorulan Sorular
Postman olmadan API testi yapılabilir mi?
Evet, terminal üzerinden curl komutları veya kod içinden HTTP istemci kütüphaneleri kullanılarak da API test edilebilir. Ancak Postman'in görsel arayüzü, isteği ve yanıtı aynı anda okunabilir biçimde sunduğu için özellikle öğrenme sürecinde işleri büyük ölçüde kolaylaştırır.
GET isteği ile POST isteği arasındaki temel fark nedir?
GET isteği sunucudan veri okumak için kullanılır ve genellikle gövde taşımaz; POST isteği ise sunucuya yeni veri göndermek için kullanılır ve isteğin gövdesinde (body) veri taşır. Bu fark, hangi metodun ne zaman kullanılacağını belirleyen temel ayrımdır.
401 Unauthorized hatası neden alınır ve nasıl çözülür?
Bu hata genellikle isteğe kimlik doğrulama bilgisinin hiç eklenmemesinden ya da eklenen token'ın geçersiz veya süresi dolmuş olmasından kaynaklanır. Authorization sekmesinden doğru token türünü seçip güncel bir değer girmek çoğu zaman sorunu çözer.
Postman'de Authorization header'ı nasıl eklenir?
İstek ekranındaki Authorization sekmesinden Bearer Token, API Key veya Basic Auth gibi bir tür seçilip gerekli değer girildiğinde Postman bu bilgiyi otomatik olarak isteğin header kısmına ekler; header'ı manuel olarak Headers sekmesinden de girmek mümkündür.
API yanıtındaki JSON body nasıl doğru okunur?
Yanıt gövdesi öncelikle durum koduyla birlikte değerlendirilmeli, ardından beklenen alanların (id, mesaj, veri nesnesi gibi) doğru isim ve tipte gelip gelmediği kontrol edilmelidir. Postman'in yanıt panelindeki biçimlendirilmiş görünüm, iç içe geçmiş JSON yapılarını okumayı kolaylaştırır.
Postman becerisi Python veya Java ile backend geliştirmede işime yarar mı?
Evet, hangi dilde veya framework'te backend geliştirdiğinizden bağımsız olarak, yazdığınız endpoint'leri frontend'e bağlamadan önce izole biçimde doğrulamak Postman ile çok daha güvenilir ve hızlı hale gelir.
Yeni başlayanlar Postman'de en çok hangi hatayı yapar?
En sık karşılaşılan hatalar; yanlış Content-Type ayarı, eksik veya hatalı Authorization header'ı ve geçersiz JSON formatıyla gövde göndermektir. Bu hataların çoğu birkaç deneme sonrasında kolayca fark edilir hale gelir.
Postman ile isteği kurmayı, yanıtı okumayı ve olası hataları çözmeyi öğrenmek, HTTP bilginizi gerçek bir backend pratiğine dönüştürmenin en doğrudan yoludur. Bu becerileri kalıcı bir öğrenme sürecine bağlamak isterseniz video eğitim içerikleri ile kendi hızınızda ilerleyebilirsiniz.