Postman, kod yazmadan önce bir API'yi keşfetmek, çalışan bir isteği takımla paylaşmak veya yerel ortam açmadan bir production değişikliğini smoke-test etmek istediğinde doğru araçtır. Nodetonet REST API'si Postman'de kusursuz çalışır — özel protokol yok, signed-URL töreni yok, sadece Bearer auth ve JSON.
Kısaca: iki değişkenli bir ortam oluştur, collection'da Authorization header'ını bir kez ayarla; bundan sonra her istek onu miras alır. Kurulumun tamamı yaklaşık iki dakika sürer.
/api/postman-collection.json adresinde hosted bir collection yayınlıyoruz (tahmini 2026 Q3). O zamana kadar aşağıdaki manuel kurulum byte-identik bir çalışma alanı üretir. Bu rehber aynı zamanda CI için Newman'ı, pratik ipuçlarını ve Postman'in Nodetonet geliştirici yüzeyiyle nasıl bütünleştiğini kapsar — HTTP tünelleri, rotating proxy ve reseller API dahil.
Nodetonet REST API neyi kapsar
Postman'i açmadan önce API'nin aslında neyi kontrol ettiğini bilmek işe yarar. Nodetonet, self-hosted bir mobil proxy ve rotating proxy platformudur — REST API, panelde yapabileceğin her şeyin programatik yüzeyidir:
| API grubu | Ne kontrol eder | Temel işlemler |
|---|---|---|
| Proxies | Tek cihaz ve upstream proxy konfigürasyonları | listele, al, oluştur, güncelle, sil, başlat, durdur |
| Rotating proxies | Token grupları, istemci auth, kota, thread limitleri | listele, oluştur, istemci yönet, kota sıfırla |
| Devices | Agent uygulaması çalıştıran eşleştirilmiş Android telefonlar | listele, sağlık, IP sıfırla, yeniden başlat |
| Tokens | Kapsam tabanlı erişimli API token'ları | listele, oluştur, iptal et |
| Servers | Veri düzlemini çalıştıran edge node'ları | listele, port havuzu, kapasite |
| HTTP tunnels | Windows .exe agent destekli public subdomainler | listele, oluştur, sil |
| Audit log | 30 günlük aktivite izi | filtrelerle sorgula |
| Health | Sistem durumu (auth gerekmez) | GET /health |
Her grup, hosted collection'daki bir Postman klasörüyle bire bir eşleşir. Koddan aynı yüzeyin anlatımlı bir incelemesi için REST API: ilk çağrın ve Python'da programatik tünel oluşturma yazılarına bakın.
Adım 1 — Postman ortamını oluştur
Postman'i aç ve Environments → Create'e git. Ortamı nodetonet-prod olarak adlandır. Tam olarak iki değişken ekle:
| Değişken | İlk değer | Mevcut değer | Tür |
|---|---|---|---|
base_url | https://nodetonet.com/api/v1 | aynı | default |
ntn_token | (boş bırak) | Bearer token'ın | secret |
ntn_token'ı secret olarak işaretlemek onu UI'da maskeler ve paylaşılan collection export'larından çıkarır. Token değerini almak için giriş yap ve API token'ları sayfasını aç — ihtiyacın olan kapsamlarla bir token oluştur (salt-okunur test için proxies:read devices:read yeterlidir). Token kapsamları hakkında bilgi için müşteri API token'ları vs kişisel token'lar yazısına bak.
Aynı değişkenlerle ama bir staging token'ıyla nodetonet-dev adında ikinci bir ortam oluştur. Ortamlar arasında dropdown ile geç — dev yerine production'a POST etme riski yok.
Adım 2 — Collection'da authorization'ı yapılandır
Nodetonet adında yeni bir collection oluştur. Authorization sekmesinde Bearer Token'ı seç ve değer olarak {{ntn_token}} gir. Eklediğin her istek bu ayarı miras alır — istek başına header tekrarlamazsın. Bu, token-doğrulamalı API'ler için en kullanışlı Postman kalıbıdır.
Adım 3 — İlk isteğin: proxy'leri listele
Collection'a bir istek ekle:
GET {{base_url}}/proxies
Body yok, ekstra header yok. Send'e bas ve proxy nesnelerinden oluşan bir JSON dizisi al. Sonuçları daraltmak için — diyelim sadece çalışan proxy'ler — query param ekle:
GET {{base_url}}/proxies?status=running&limit=50
Şekli doğrulamak için bir Tests snippet'i ekle:
pm.test("yanit 200", () => pm.response.to.have.status(200));
pm.test("tum proxyler calisiyor", () => {
pm.response.json().forEach(p => pm.expect(p.status).to.eql("running"));
});
Tests sekmesi her Send'den sonra çalışır. Bunu CI için Newman'a bağladığında her PR'da çalışan bir contract testi olur — API'nin bu çağrılar hakkında ne kaydettiğini görmek için audit logları yazısına bak.
Adım 4 — Proxy oluştur ve ID'yi yakala
Bir POST isteği ekle:
POST {{base_url}}/proxies
Content-Type: application/json
{
"name": "postman-test",
"protocol": "http",
"port": 10200
}
Tests sekmesinde dönen ID'yi yakala — sonraki istekler onu yeniden kullanabilir:
const body = pm.response.json();
pm.environment.set("last_proxy_id", body.id);
pm.environment.set("last_proxy_port", body.port);
console.log("proxy olusturuldu", body.id, "port", body.port);
{{last_proxy_id}} artık sonraki her istekte kullanılabilir. Bu kalıp — yakala ve yeniden kullan — Postman otomasyonunun temelidir. Bir DELETE çağrısıyla birleştirince tam bir oluştur-doğrula-temizle smoke testi elde edersin. Desteklenen proxy protokolleri (HTTP, HTTPS ve SOCKS5) için özellikler sayfasına bak.
Adım 5 — Proxy sil
DELETE {{base_url}}/proxies/{{last_proxy_id}}
"Oluştur → doğrula → sil" zincirini tekrarlanabilir bir smoke testi için Postman Collection Runner'da çalıştır; birkaç saniyede biter. Collection ve ortamı JSON dosyaları olarak export et, sonra Newman ile head'siz yönet:
newman run nodetonet.postman_collection.json -e nodetonet.postman_environment.json --env-var ntn_token=$NTN_TOKEN --reporters cli,junit --reporter-junit-export results.xml
JUnit reporter çıktısı GitHub Actions, Jenkins veya test XML okuyan her CI sistemiyle entegre olur. NTN_TOKEN'ı CI secret olarak nasıl enjekte edeceğin için API anahtarını anlamak yazısına bak.
Adım 6 — Cihazlarla çalışmak
Cihazlar, Nodetonet agent uygulaması çalıştıran Android telefonlardır — her biri gerçek bir hücresel operatördeki bir mobil proxy çıkış noktasıdır. Cihazlar API'si sağlık okumanı, IP rotasyonu tetiklemenizi ve agent'ı uzaktan yeniden başlatmanı sağlar:
GET {{base_url}}/devices // eşleştirilmiş tüm cihazları listele
GET {{base_url}}/devices/{{device_id}} // sağlık, operatör, son-görülme
POST {{base_url}}/devices/{{device_id}}/reset-ip // IP rotasyonu tetikle
POST {{base_url}}/devices/{{device_id}}/restart // agent'ı yeniden başlat
Bu özellikle rotating proxy pipeline'larını test ederken çok işe yarar — programatik olarak IP değişimi zorlayıp yeni çıkış IP'sini hemen ücretsiz IP adresim nedir aracımızla doğrulayabilirsin. Yeni IP'yi proxy checker ile de doğrulayabilirsin. Cihaz yaşam döngüsünün tamamı için cihaz sağlığı: "Çevrimiçi" ne demektir yazısını oku.
Adım 7 — Rotating proxy ve istemci yönetimi
Rotating proxy'ler (token grupları) çok cihazlı havuzlu moddur. Temel endpoint'ler:
GET {{base_url}}/rotating-proxies // havuzları listele
POST {{base_url}}/rotating-proxies // havuz oluştur
GET {{base_url}}/rotating-proxies/{{rp_id}}/clients // istemci kimlik bilgilerini listele
POST {{base_url}}/rotating-proxies/{{rp_id}}/clients // kota+süre ile istemci oluştur
PUT {{base_url}}/rotating-proxies/{{rp_id}}/clients/{{client_id}} // kota veya thread güncelle
DELETE {{base_url}}/rotating-proxies/{{rp_id}}/clients/{{client_id}}
Reseller veya white-label yapısı işletiyorsan istemciler API'si alt hesapları programatik olarak nasıl provizyon edeceğini belirler. Alan düzeyindeki dokümanlar için proxy istemcileri: müşteri başına auth, istemci başına kota limitleri ve istemci başına thread limitleri yazılarına bak.
Bir kez yapana kadar belli olmayan ipuçları
- Dinamik değerler için pre-request script kullan. Bir endpoint taze bir timestamp veya UUID gerektiriyorsa Pre-request Script'te
pm.variables.set("ts", Date.now())ile üret — her send'den önce taze çalışır. - Rate-limit header'larını yüzeye çıkar. Nodetonet her yanıtta
X-RateLimit-RemainingveX-RateLimit-Resetdöner. Onları loglayan bir Tests snippet'i ekle — exploratory çalışma sırasında throttling'i görünür kılar. - Postman secret'ları Git secret'ları değildir. Workspace'ini ekiple senkronlarsan Postman secret'ı onların hesabında da saklar. Ekipe paylaşılan collection'lar için CI-kapsamlı bir token (
proxies:readyeterli) kullan; production-write token'larını asla paylaşma. - Tam kapsama için OpenAPI spec'i import et. Postman /openapi.json'u doğrudan File → Import → Link üzerinden import edebilir — yeni bir alan yayınlandığında otomatik yeniden üretilir. Elle hazırlanmış collection seçilmiş örnekler ve Tests assertion'ları ekler; OpenAPI import tam endpoint kapsaması verir.
- Paylaşılan ID'ler için collection değişkenleri kullan.
last_proxy_id'yi bir ortam değişkeninden collection değişkenine yükselt — sadece bir akış içinde kullanılıyorsa ortamını daha temiz tutar. - Geo-hedefleme sözdizimi kullanıcı adına gider. Proxy kullanıcı-adı modifier'ları kabul eden endpoint'leri çağırırken (
-country-tr,-city-istanbulveya-session-XXXXgibi), istek body'lerini düzenlemeden hedefleri değiştirebilmek için bunları ortam değişkenleri olarak ayarla. Tam modifier referansı için geo-hedefleme sayfasına bak.
Hosted collection (Q3 2026)
Yayınlandığında, /api/postman-collection.json üzerinden collection'ı import etmek (veya her doküman sayfasında görünecek "Run in Postman" butonuna tıklamak) sekiz API grubunun tamamını — örnek yanıtlar, 4xx örnekleri ve Tests assertion'ları dahil — workspace'ine önceden yapılandırılmış olarak bırakır. O zamana kadar yukarıdaki manuel kurulum işlevsel olarak aynıdır. Bu sayfayı yer imlerine ekle; collection yayına girdiği gün güncelleyeceğiz.
İlk çağrını yapmaya hazır mısın? Ücretsiz hesap oluştur, bir token al, yukarıdaki ortam snippet'ini yapıştır ve Send'e bas. İlk proxy'n bir istek uzaklığında.