Postman — REST, GraphQL, WebSocket ve gRPC protokollerini destekleyen, grafik arayüzlü bir API test platformudur. Araç, HTTP istekleri oluşturmayı ve göndermeyi, bunları koleksiyonlar halinde düzenlemeyi, komut dosyalarıyla testi otomatikleştirmeyi ve uç noktalar için dokümantasyon üretmeyi sağlar. Postman Learning Center (2026)'a göre dünya genelinde 25 milyondan fazla geliştirici platformu kullanmaktadır.
Önemli noktalar
Postman, masaüstü uygulaması (Windows, macOS, Linux) ve web sürümü olarak sunulan, API geliştirme ve test etme platformudur. 2012'de Chrome eklentisi olarak oluşturulan Postman, izleme, mock sunucu ve istemci kodu üretimi desteğiyle tam kapsamlı bir ekosisteme dönüşmüştür.
Postman tüm HTTP yöntemlerini destekler: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. İstek gövdesi JSON, XML, form-data, x-www-form-urlencoded ve binary biçimlerinde olabilir. Yanıt, sözdizimi vurgulama, Pretty-print ve ham başlıkları görüntüleme özelliğiyle gösterilir.
Yerleşik kimlik doğrulama türleri Bearer Token, Basic Auth, Digest Auth, OAuth 1.0, OAuth 2.0, API Key ve AWS Signature içerir. Postman, seçilen türe göre Authorization başlıklarını otomatik ekler ve bu sayede jetonları elle kopyalamadan korumalı uç noktaların testini hızlandırır.
Postman arayüzü yan panel (Collections, APIs, Environments), çalışma alanı (Request Builder/Response Viewer) ve alt panelden (Console, Runner) oluşur. Params sekmesi URL'deki sorgu parametrelerini tablo görünümünde düzenlemenizi, Headers sekmesi HTTP başlıklarını yönetmenizi sağlar.
Console (View → Show Postman Console), ara yönlendirmeler ve başlıklar dahil tüm ağ isteklerini ve yanıtlarını kronolojik sırayla kaydeder. Standart Response Viewer yalnızca nihai sonucu gösterdiğinde karmaşık OAuth akışlarını ve yönlendirme zincirlerini hata ayıklarken vazgeçilmez bir araçtır.
Postman, Fork ve Merge aracılığıyla koleksiyon sürümlemesiyle ekip çalışma alanlarını destekler. Ekip üyeleri isteklere yorum yapabilir, değişiklik önerebilir ve koleksiyonları gerçek zamanlı senkronize edebilir. Public Workspace, harici geliştiriciler için API dokümantasyonu yayınlamanızı sağlar.
Postman'da temel bir istek, HTTP yöntemi seçilerek ve adres çubuğuna URL girilerek oluşturulur. Gönderimin ardından yanıt, durum kodu, yürütme süresi ve boyutuyla alt panelde görüntülenir. İstek parametreleri giriş sırasında otomatik olarak kodlanır.
URL ve istek gövdesinde {{$variable}} biçiminde dinamik değişkenler kullanılabilir. Yerleşik değişkenler {{$guid}}, {{$timestamp}} ve {{$randomInt}} her istek için benzersiz değerler üretir. Kod snippet'ları, cURL, Python, JavaScript, Kotlin, Swift ve diğer dillerde eşdeğer bir istek üreten Code düğmesi (>) ile kullanılabilir.
// Pre-request'te komut dosyası örneği: HMAC imzası üretme
const timestamp = Date.now().toString();
const secret = pm.environment.get("api_secret");
const hash = CryptoJS.HmacSHA256(timestamp, secret);
pm.request.headers.add({
key: "X-Signature",
value: hash.toString()
});
Koleksiyonlar, projeye veya işlevsel modüle göre birleştirilen ilgili istek gruplarıdır. Her koleksiyon, iç içe klasörler, ortak başlıklar ve koleksiyondaki her istekten önce çalışan Pre-request komut dosyaları içerebilir. İsteklerin sırası sürükleme ile belirlenir.
Postman beş değişken düzeyini destekler: global, collection, environment, data ve local. Çakışma çözümleme önceliği yerelden globale doğrudur. Ortam dosyaları farklı ortamlar için anahtar-değer çiftleri içerir: development, staging, production. Ortamı değiştirmek tüm URL'leri ve jetonları otomatik değiştirir.
| Düzey | Kapsam | Öncelik |
|---|---|---|
| Local | Geçerli istek | 1 (en yüksek) |
| Data | Collection Runner (CSV/JSON'dan) | 2 |
| Environment | Etkin ortam | 3 |
| Collection | Tüm koleksiyon | 4 |
| Global | Tüm çalışma alanı | 5 |
Postman, yanıt alındıktan sonra çalışan Tests sekmesinde JavaScript ile testler yazmanızı sağlar. Testler durum kodunu, yanıt gövdesini, başlıkları ve yürütme süresini kontrol eder. Sonuçlar, renkli geçme göstergeleriyle Test Results panelinde görüntülenir.
pm nesnesi yanıtla çalışmak için yöntemler sağlar: pm.response, pm.expect, pm.variables. İstek zincirleme, bir isteğin yanıtındaki verilerin bir değişkene kaydedilmesi ve sonrakinde kullanılmasıyla uygulanır. Bu, entegrasyon testleri oluşturmanın ve API çağrıları dizisiyle iş mantığını doğrulamanın temelidir.
// Test: yanıt yapısını doğrulama ve jetonu kaydetme
pm.test("Status code is 200", () => {
pm.response.to.have.status(200);
});
const json = pm.response.json();
pm.environment.set("auth_token", json.data.token);
Collection Runner, koleksiyonun tüm isteklerini sırayla çalıştırır ve her adımda testleri yürütür. Newman, CI/CD ardışık düzenleri (Jenkins, GitHub Actions, GitLab CI) için Postman'ın konsol sürümüdür. Newman, izleme sistemleriyle entegrasyon için JSON, JUnit ve HTML biçimlerinde raporlar dışa aktarır.
Postman'da GraphQL istekleri, JSON biçiminde gövdeyle tek bir uç noktaya POST ile gönderilir. GraphQL (Beta) sekmesi, sözdizimi vurgulama, alan otomatik tamamlama ve şemayla görsel bir düzenleyici sağlar. İstek değişkenleri ayrı bir Variables panelinde iletilir.
Postman, mesaj paneli olan ayrı bir arayüz üzerinden WebSocket bağlantılarını destekler. Metin ve ikili mesajlar gönderebilir, bağlantı geçmişini görüntüleyebilir ve bağlantı kesildiğinde otomatik yeniden bağlanabilirsiniz. Socket.IO istemcisi, Engine.IO protokolüyle uyumluluk modunda çalışır.
// pm API aracılığıyla Postman'da WebSocket testi
const ws = new WebSocket("wss://echo.websocket.org");
ws.onmessage = (event) => {
pm.test("Echo response received", () => {
pm.expect(event.data).to.eql("Hello");
});
};
Postman'ın mock sunucuları, mevcut koleksiyonlara dayalı olarak API uç noktalarını simüle etmenizi sağlar. Bu, arka uç henüz hazır olmadığında ancak ön uç veya mobil uygulama zaten geliştirilirken faydalıdır. Mock sunucu, doğru başlıklar ve durum koduyla koleksiyondan örnek bir yanıt döndürür.
Mock sunucu, koleksiyondan tek tıkla oluşturulur: koleksiyonu seçin → Mock Servers → Add a new mock server. Postman, gerçek API yerine uygulama kodunda kullanılabilecek benzersiz bir URL üretir. Koleksiyonun her isteği için mock, kayıtlı Example Response döndürür ve böylece arka uç tamamlanmadan önce arayüzü test etmenizi sağlar.
Monitors, koleksiyonu bir zamanlamaya göre (her 5 dakikada, saatte veya günde) çalıştırır ve API'nin kullanılabilirliğini ve doğruluğunu kontrol eder. Bir test başarısız olduğunda, monitör e-postaya veya Slack'e bildirim gönderir. İzleme, Postman bulutundan çalışır, ayrı bir sunucu gerektirmez ve ücretsiz planda ayda 10.000 isteğe kadar destekler.
// İzleme için test: yanıt süresini doğrulama
pm.test("Response time < 2000ms", () => {
pm.expect(pm.response.responseTime).to.be.below(2000);
});
pm.test("Content-Type is JSON", () => {
pm.response.to.have.header("Content-Type");
});
Postman, API anahtarlarıyla güvenli çalışma mekanizmaları sağlar. Secret türündeki değişkenler şifrelenir ve arayüzde görüntülenmez. Ekip çalışması için Admin, Editor ve Viewer rolleri olan bir Workspace kullanın.
Bir ortam değişkeni oluştururken Secret türünü seçin — değer tüm arayüzlerde yıldız işaretleriyle gizlenir. Gizli bilgiler paylaşım sırasında koleksiyona dışa aktarılmaz ve Newman günlüklerinde görüntülenmez. Parolaların ve jetonların yalnızca Secret değişkenlerinde saklanması önerilir.
Postman, HashiCorp Vault ve AWS Secrets Manager ile entegrasyonu destekler. Pre-request komut dosyaları, harici depolamadan gizli bilgileri dinamik olarak isteyebilir ve koleksiyon ortam dosyalarında hassas verilerin saklanmasını önler.
Postman, API anahtarlarıyla güvenli çalışma mekanizmaları sağlar. Secret türündeki değişkenler şifrelenir ve arayüzde görüntülenmez. Ekip çalışması için Admin, Editor ve Viewer rolleri olan bir Workspace kullanın.
Bir ortam değişkeni oluştururken Secret türünü seçin — değer tüm arayüzlerde yıldız işaretleriyle gizlenir. Gizli bilgiler paylaşım sırasında koleksiyona dışa aktarılmaz ve Newman günlüklerinde görüntülenmez. Parolaların ve jetonların yalnızca Secret değişkenlerinde saklanması önerilir.
Postman, HashiCorp Vault ve AWS Secrets Manager ile entegrasyonu destekler. Pre-request komut dosyaları, harici depolamadan gizli bilgileri dinamik olarak isteyebilir ve koleksiyon ortam dosyalarında hassas verilerin saklanmasını önler.
Sık sorulan sorular
Postman daha geniş bir ekosistem sunar: koleksiyonlar, ortamlar, izleme, mock sunucular ve CI/CD için Newman. Insomnia, daha düşük bellek tüketimiyle hafiflik ve hıza odaklanır. Postman ekip çalışması için, Insomnia bireysel kullanım için daha uygundur.
İlk isteğin Tests bölümünde, jetonu ortama kaydedin: pm.environment.set("token", pm.response.json().token). İkinci istekte Authorization başlığında {{$token}} değişkenini kullanın. Sıralı çalıştırmada Runner değeri otomatik olarak yerleştirir.
Evet, Import → Raw Text düğmesiyle. Postman cURL komutunu otomatik olarak ayrıştırır ve başlıklar, yöntem ve gövdeyle bir istek oluşturur. -H, -d, -F ve -u dahil tüm cURL bayrakları desteklenir. Ters dönüştürme Code düğmesiyle (>) kullanılabilir.
JSON gövdeyle bir POST isteği kullanın: {"query": "..."}. GraphQL sekmesi, Introspection Query ile şema yüklemesiyle görsel bir düzenleyici sağlar. İstek değişkenleri aynı JSON nesnesinin variables alanında iletilir.
Newman, CI/CD'de koleksiyonları çalıştırmak için Postman'ın konsol sürümüdür. npm ile kurulur, HTML raporları ve Jenkins, GitHub Actions ve GitLab CI ile entegrasyonu destekler. Grafik arayüz olmadan API gerileme testlerini otomatikleştirmenizi sağlar.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun