Harici servislerden webhook veya geri arama (callback) alması gereken localhost API'lerini test etmek, yerel geliştirme sunucunuzu geçici olarak internete açmayı gerektirir. ngrok, NPort, Cloudflare Tunnel ve benzeri tünelleme hizmetleri, localhost'unuza herkese açık bir URL veren güvenli bağlantılar oluşturur.
Neden Localhost Tünellemeye İhtiyacınız Var?
Üçüncü taraf hizmetlerle entegre olan bir API geliştiriyorsunuz. Dizüstü bilgisayarınızda her şey yolunda gidiyor; uç noktalar doğru yanıt veriyor, veriler sorunsuz akıyor. Ardından Stripe, GitHub, Twilio veya herhangi bir harici servisten gelen webhook geri aramalarını test etmeye çalışıyorsunuz.
Sorun: Harici servisler localhost:3000'e ulaşamıyor. Geliştirme sunucunuz internetten erişilebilir değil.
İş akışınızı bozan yaygın senaryolar:
1. Webhook Testi
Stripe gibi hizmetler ödeme onayları, GitHub depo etkinlikleri, Slack etkileşim etkinlikleri gönderir; bunların hepsi API'nize POST isteği olarak gelir. Geliştirme sırasında, bu hizmetlerin webhook göndermek için herkese açık bir URL'ye ihtiyacı vardır.

2. OAuth Geri Arama URL'leri
"Google ile oturum aç," "GitHub ile giriş yap," veya herhangi bir OAuth akışı uygularken, kimlik doğrulama sağlayıcısı kullanıcıları bir yetkilendirme koduyla uygulamanıza geri yönlendirir. Yönlendirme URL'si herkese açık olmalı ve sağlayıcıya kaydettiğinizle eşleşmelidir.

3. Üçüncü Taraf API Entegrasyonu
Bazı API'ler, asenkron işlemler için geri arama URL'leri gerektirir. Örneğin, video dönüştürme hizmetleri işlem tamamlandığında API'nizi bilgilendirir veya ödeme işlemcileri işlemleri onaylar.
4. Mobil Uygulama Geliştirme
API'nizi aynı ağdaki bir mobil cihazdan test etmek genellikle başarısız olur çünkü mobil uygulama localhost'u çözümleyemez. Bir tünel size herhangi bir cihazdan çalışan bir URL sağlar.
5. Müşteri Demoları
Bazen müşterilere veya paydaşlara devam eden işleri göstermeniz gerekebilir. Her küçük değişiklik için hazırlık ortamına dağıtım yapmak yinelemeyi yavaşlatır. Geçici bir herkese açık URL, müşterilerin geliştirme ortamınızı test etmesine olanak tanır.
Localhost Tünelleme Nasıl Çalışır?
Tünelleme hizmetleri, bulut sunucuları ile yerel makineniz arasında güvenli bir bağlantı oluşturur:
Harici Servis → Tünelleme Hizmeti (herkese açık URL) → Güvenli Bağlantı → Yerel Sunucunuz:3000
Süreç:
- Makinenizde yerel bağlantı noktanızı işaret eden bir tünel istemcisi başlatırsınız
- İstemci, tünelleme hizmetinin bulut altyapısına bağlanır
- Hizmet, herkese açık bir URL atar (örn.
https://abc123.ngrok.io) - Bu herkese açık URL'ye gelen istekler, şifreli bağlantı üzerinden localhost'unuza iletilir
- Yerel sunucunuz isteği doğrudan istemciden gelmiş gibi alır
- Yanıtlar tünel aracılığıyla istekte bulunana geri akar
Bu şeffaf bir şekilde gerçekleşir. Yerel sunucunuz, bir tünelin arkasında olduğunu bilmek zorunda değildir.
Popüler Tünelleme Hizmetlerini Karşılaştırma
İşte 2026'daki en popüler seçenekler, güçlü yönleri ve sınırlamalarıyla birlikte:
ngrok (En Popüler)
En iyisi: Köklü projeler, güvenilirlik isteyen ekipler
ngrok http 3000

Artıları:
- Kapsamlı dokümantasyona sahip endüstri standardı
- Tüm istekleri görmek için web denetçisi kullanıcı arayüzü
- Ücretli planlarda özel alan adları
- İstek tekrarlama işlevi
- TLS sonlandırma
Eksileri:
- Ücretsiz katmanda 2 saatlik oturum sınırı var
- Ücretsiz katmanda rastgele URL'ler (her oturumda değişir)
- Kalıcı URL'ler için fiyatlandırma aylık 10 dolardan başlar
Ücretsiz Katman:
- 1 çevrimiçi aracı
- Dakikada 40 bağlantı
- Süresi dolan rastgele URL'ler
Ücretli Planlar: Aylık 8-20 dolar

NPort (Yükselen Ücretsiz Alternatif)
En iyisi: Abonelik maliyetlerinden kaçınan geliştiriciler

nport start 3000
Artıları:
- Tamamen ücretsiz ve açık kaynak
- Oturum süresi sınırı yok
- Özel alt alan adları mevcut
- Kendi kendine barındırılan seçenek
- ngrok ücretsiz katmanına benzer özellik seti
Eksileri:
- Daha küçük topluluk (daha az eğitim)
- Daha az olgun (2025'te başlatıldı)
- Ticari destek yok
Ücretsiz Katman:
- Sınırsız tünel
- Zaman sınırı yok
- Özel alt alan adları

Bu, geliştiricilerin devam eden maliyetler olmadan ngrok alternatifleri arayışında Dev.to'da ilgi gören bir araçtır.
Cloudflare Tunnel (Üretime Yakın Kullanım İçin En İyisi)
En iyisi: Halihazırda Cloudflare kullanan ekipler, uzun süreli tüneller

cloudflared tunnel --url http://localhost:3000
Artıları:
- Kurumsal düzeyde altyapı
- DDoS koruması dahil
- Cloudflare Zero Trust ile entegre olur
- Bant genişliği sınırı yok
- Çoğu kullanım durumu için ücretsiz
Eksileri:
- Daha karmaşık kurulum
- Cloudflare hesabı gerektirir
- Basit webhook testleri için aşırıya kaçan bir çözüm
Ücretsiz Katman:
- Sınırsız bant genişliği
- Sınırsız tünel
- DDoS koruması
Localtunnel (En Basit)
En iyisi: Hızlı tek seferlik testler, kurulum gerektirmez
npx localtunnel --port 3000
Artıları:
- Kayıt gerekmez
- Sıfır yapılandırma
- Kurulumsuz (npx aracılığıyla çalışır)
- Açık kaynak
Eksileri:
- Güvenilmez (sık sık kesinti yaşar)
- İstek denetimi yok
- Yalnızca rastgele URL'ler
- Minimum dokümantasyon

Ücretsiz Katman:
- Her şey ücretsiz
- Özellik kısıtlaması yok
Tailscale Funnel (Ekipler İçin En İyisi)
En iyisi: Özel ekip paylaşımı, güvenli demolar

tailscale serve https / http://localhost:3000
tailscale funnel 443 on
Artıları:
- WireGuard tabanlı (hızlı, güvenli)
- Varsayılan olarak özel (yalnızca Tailscale ağınız tarafından görünür)
- Gerektiğinde herkese açık olarak yayınlanabilir
- Ekip işbirliği için mükemmel
Eksileri:
- Tailscale kurulumu gerektirir
- Daha dik öğrenme eğrisi
- Esas olarak özel ağ için tasarlanmıştır
Ücretsiz Katman:
- 100 cihaza kadar
- Sınırsız bant genişliği

Karşılaştırma Tablosu
| Özellik | ngrok | NPort | Cloudflare Tunnel | Localtunnel | Tailscale |
|---|---|---|---|---|---|
| Fiyat | Ücretsiz/10$+ | Ücretsiz | Ücretsiz | Ücretsiz | Ücretsiz/Ücretli |
| Oturum Sınırı | 2 saat | Yok | Yok | Yok | Yok |
| Özel Alan Adı | Ücretli | Ücretsiz | Evet | Hayır | Evet |
| İstek Denetleyici | Evet | Temel | Hayır | Hayır | Hayır |
| Kurulum Karmaşıklığı | Düşük | Düşük | Orta | Çok Düşük | Orta |
| Güvenilirlik | Mükemmel | İyi | Mükemmel | Kötü | Mükemmel |
| En İyisi | Üretim testi | Maliyet odaklı geliştiriciler | Kurumsal | Hızlı testler | Ekip paylaşımı |
İlk Localhost Tünelinizi Kurma
En yaygın araçlarla kurulumu inceleyelim. Örnek olarak bir Node.js Express API kullanacağız, ancak bu, herhangi bir yerel sunucuyla çalışır.
Örnek: Yerel API Sunucusu
// server.js
const express = require('express');
const app = express();
app.use(express.json());
app.post('/webhook', (req, res) => {
console.log('Webhook received:', req.body);
res.json({ received: true });
});
app.get('/health', (req, res) => {
res.json({ status: 'healthy' });
});
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
Seçenek 1: ngrok Kullanımı
Adım 1: ngrok Kurulumu
# macOS
brew install ngrok
# Windows (via Chocolatey)
choco install ngrok
# Linux
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | \
sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && \
echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | \
sudo tee /etc/apt/sources.list.d/ngrok.list && \
sudo apt update && sudo apt install ngrok
Adım 2: Kimlik Doğrulama (isteğe bağlı ancak önerilir)
ngrok config add-authtoken YOUR_AUTH_TOKEN
Adım 3: Tüneli Başlatın
ngrok http 3000
Çıktı:
Session Status online
Account you@example.com (Plan: Free)
Version 3.5.0
Region United States (us)
Forwarding https://abc123.ngrok.io -> http://localhost:3000
API'nize artık https://abc123.ngrok.io adresinden erişilebilir.
Adım 4: Test Edin
curl https://abc123.ngrok.io/health
# {"status":"healthy"}
Seçenek 2: NPort Kullanımı (Ücretsiz Alternatif)
Adım 1: NPort Kurulumu
npm install -g nport-cli
# or
curl -sSL https://nport.io/install.sh | bash
Adım 2: Tüneli Başlatın
nport start 3000 --subdomain myapi
Çıktı:
✓ Tunnel started successfully
Public URL: https://myapi.nport.io
Local URL: http://localhost:3000
Adım 3: Test Edin
curl https://myapi.nport.io/health
# {"status":"healthy"}
Seçenek 3: Cloudflare Tunnel Kullanımı
Adım 1: cloudflared Kurulumu
# macOS
brew install cloudflare/cloudflare/cloudflared
# Linux
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
Adım 2: Hızlı tünel (kayıt gerekmez)
cloudflared tunnel --url http://localhost:3000
Çıktı:
2026-01-27T12:00:00Z INF Your quick tunnel is: https://xyz789.trycloudflare.com
Kalıcı tüneller için (Cloudflare hesabı gerektirir):
# Login
cloudflared tunnel login
# Create tunnel
cloudflared tunnel create myapi
# Configure and run
cloudflared tunnel --config config.yml run myapi
Apidog ile Webhook Testi
Artık localhost'unuz herkese açık olduğuna göre, Apidog kullanarak webhook'ları sistematik olarak test edelim.
Neden Tünellemeyi + Apidog'u Birleştirmeli?
Tünelleme erişimi çözer; Apidog doğrulamayı çözer:
- Tünelleme hizmeti localhost'unuzu erişilebilir kılar
- Apidog API yanıtlarınızı test eder, verileri doğrular, senaryoları otomatikleştirir
Apidog'da Webhook Testi Kurulumu
Adım 1: API'nizi İçe Aktarın veya Oluşturun
- Apidog'u açın

2. Yeni bir proje oluşturun

3. Webhook uç noktanızı ekleyin:

- Yöntem: POST
- URL:
{{base_url}}/webhook - Başlıklar:
Content-Type: application/json
Adım 2: Ortam Değişkenlerini Yapılandırın
İki ortam kurun:
Geliştirme (Tünellenmiş):
{
"base_url": "https://abc123.ngrok.io"
}
Üretim:
{
"base_url": "https://api.yourapp.com"
}
Bu, aynı uç noktayı yerel olarak ve üretimde tek tıklamayla test etmenizi sağlar.
Adım 3: Test Senaryoları Oluşturun
Webhook'lar geldiğinde ne olduğunu test edin:
Örnek: Stripe Ödeme Webhook Testi
// Request Body
{
"type": "payment_intent.succeeded",
"data": {
"object": {
"id": "pi_test123",
"amount": 2000,
"currency": "usd",
"status": "succeeded"
}
}
}
Apidog'daki Doğrulamalar (Assertions):
- Durum kodu 200'e eşit
- Yanıt
received: trueiçeriyor - Yanıt süresi < 1000ms
- Content-Type
application/json
Adım 4: Üçüncü Taraf Hizmetleri Simüle Edin
Stripe veya GitHub'dan gerçek webhook'ları tetiklemek yerine, bunları Apidog'da simüle edin:
- Servis dokümantasyonundan webhook payload örneklerini kopyalayın
- Çeşitli senaryolarla (başarı, hata, uç durumlar) test durumları oluşturun
- Tüm senaryoları tünellenmiş localhost'unuza karşı çalıştırın
- API'nizin her durumu doğru şekilde ele aldığını doğrulayın
OAuth Geri Aramalarını Test Etme
Senaryo: "Google ile Oturum Aç" özelliğini uyguluyorsunuz
Adım 1: Özel alt alan adıyla tüneli başlatın
ngrok http 3000 --subdomain myapp
# URL: https://myapp.ngrok.io
Adım 2: Google Console'da OAuth yönlendirmesini yapılandırın
Geri arama URL'sini ayarlayın: https://myapp.ngrok.io/auth/google/callback
Adım 3: Akışı Apidog'da test edin
- Yetkilendirme URL'sini almak için
/auth/googleadresine istek gönderin - Yönlendirmeyi manuel veya programatik olarak takip edin
- Geri aramanın yetkilendirme kodunu aldığını doğrulayın
- Token değişiminin doğru çalıştığını onaylayın
Adım 4: Token depolamasını doğrulayın
Apidog'u kullanarak:
- Token'ların güvenli bir şekilde saklandığını doğrulayın
- Token yenileme akışını test edin
- Süresi dolmuş token'ların işlendiğinden emin olun
Yaygın Kullanım Durumları
1. Ödeme Webhook'larını Test Etme (Stripe, PayPal)
Zorluk: Ödeme sağlayıcıları başarılı ödemeler, iadeler, anlaşmazlıklar gibi olaylar için webhook gönderir.
Çözüm:
# Start tunnel
ngrok http 3000
# Configure webhook URL in Stripe dashboard
# https://abc123.ngrok.io/webhook/stripe
# Use Stripe CLI to forward test webhooks
stripe listen --forward-to localhost:3000/webhook/stripe
# Trigger test events
stripe trigger payment_intent.succeeded
Apidog ile test edin:
- Her olay türü için test durumları oluşturun
- İdempotansiyi doğrulayın (yinelenen webhook'ları işleme)
- İmza doğrulamasını test edin
- Veritabanı güncellemelerinin doğru gerçekleştiğinden emin olun
2. Slack/Discord Bot Komutlarını Test Etme
Zorluk: Sohbet platformları, kullanıcılar düğmelere tıkladığında veya komutları çalıştırdığında etkileşim olayları gönderir.
Çözüm:
# Start tunnel
nport start 3000 --subdomain myslackbot
# Configure in Slack API:
# Interactivity URL: https://myslackbot.nport.io/slack/interactions
# Slash Commands: https://myslackbot.nport.io/slack/commands
Apidog ile test edin:
- Düğme tıklamalarını simüle edin
- Slash komut yanıtlarını test edin
- Yanıt zamanlamasını doğrulayın (Slack <3 saniye yanıt gerektirir)
response_urlile ertelenmiş yanıtları test edin
3. SMS/Sesli Webhook'larını Test Etme (Twilio)
Zorluk: Twilio, SMS geldiğinde veya sesli aramalar alındığında webhook gönderir.
Çözüm:
cloudflared tunnel --url http://localhost:3000
TwiML webhook'larını tünel URL'nize işaret edecek şekilde yapılandırın.
Apidog ile test edin:
- Gelen SMS payload'larını taklit edin
- Farklı mesaj türlerini test edin (MMS, SMS)
- Twilio imza doğrulamasını test edin
- Yanıt TwiML üretimini test edin
4. Mobil Uygulama API Testi
Zorluk: API'nizi fiziksel bir cihazdan veya emülatörden test etme.
localhost ile ilgili sorun:
// This fails from mobile device
fetch('http://localhost:3000/api/users')
Tünel ile çözüm:
// This works from anywhere
fetch('https://myapi.ngrok.io/api/users')
Apidog ile test edin:
- Tünellenmiş temel URL ile API dokümantasyonu oluşturun
- Mobil ekiple paylaşın
- Mobil geliştiriciler canlı geliştirme sunucunuza karşı test yapabilir
- Hazır olduğunuzda hazırlık/üretim URL'lerine geçin
5. GitHub/GitLab Webhook'larını Test Etme
Zorluk: Depo webhook'larını (push, çekme isteği, sorunlar) yerel olarak test etme.
Çözüm:
# Start tunnel
ngrok http 4000
# Configure in GitHub repo settings:
# Webhook URL: https://abc123.ngrok.io/github/webhook
# Content type: application/json
# Events: Push, Pull requests
Apidog ile test edin:
- Push olaylarını simüle edin
- Çekme isteği açma/kapama olaylarını test edin
- İmza doğrulamasını doğrulayın (X-Hub-Signature)
- Dal filtreleme mantığını test edin
Güvenlik En İyi Uygulamaları
Localhost'u internete açmak güvenlik riskleri oluşturur. Bu uygulamaları takip edin:
1. Yalnızca HTTPS Kullanın
Tüm tünelleme hizmetleri varsayılan olarak HTTPS sağlar. Tüneller için asla düz HTTP kullanmayın:
# Good
ngrok http 3000
# Creates https://abc123.ngrok.io
# Bad (don't do this)
ngrok http --scheme=http 3000
2. Webhook İmza Doğrulamasını Uygulayın
Gelen webhook'lara körü körüne güvenmeyin. İmzaları doğrulayın:
const crypto = require('crypto');
function verifyStripeSignature(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}
app.post('/webhook/stripe', (req, res) => {
const signature = req.headers['stripe-signature'];
if (!verifyStripeSignature(req.body, signature, process.env.STRIPE_SECRET)) {
return res.status(401).send('Invalid signature');
}
// Process webhook
});
3. Temel Kimlik Doğrulama ile Erişimi Kısıtlayın
Tünelinize kimlik doğrulama ekleyin:
# ngrok with basic auth
ngrok http 3000 --auth="username:password"
# NPort with basic auth
nport start 3000 --auth username:password
Artık istekler kimlik bilgileri gerektirir:
curl -u username:password https://abc123.ngrok.io/webhook
4. Ortama Özgü Gizli Bilgiler Kullanın
Webhook gizli bilgilerini veya API anahtarlarını asla commit etmeyin:
// .env.development
STRIPE_WEBHOOK_SECRET=whsec_test_abc123
WEBHOOK_TUNNEL_URL=https://abc123.ngrok.io
// .env.production
STRIPE_WEBHOOK_SECRET=whsec_live_xyz789
WEBHOOK_URL=https://api.yourapp.com
5. Tünel Erişimini İzleyin
Şüpheli etkinlikleri izlemek için istek denetçisini kullanın:
# ngrok provides a web interface at:
http://localhost:4040
# View all requests, responses, replay attacks
6. Tünel Süresini Sınırla
Tünelleri süresiz olarak çalıştırmayın:
# Auto-expire tunnel after 1 hour
ngrok http 3000 --session-duration 1h
7. İstek Kaynaklarını Doğrulayın
Gelen IP adreslerini kontrol edin veya izin listeleri kullanın:
const allowedIPs = [
'192.0.2.1', // Stripe webhook IPs
'198.51.100.0/24'
];
app.use('/webhook', (req, res, next) => {
const clientIP = req.ip;
if (!allowedIPs.includes(clientIP)) {
return res.status(403).send('Forbidden');
}
next();
});
Yaygın Sorun Giderme
Sorun 1: Tünel URL'si Her Oturumda Değişiyor
Sorun: Ücretsiz ngrok tünelleri, her yeniden başlatmada değişen rastgele URL'ler kullanır. Eski URL ile yapılandırılmış webhook'lar çalışmaz.
Çözümler:
- Statik URL'ler için ücretli plan kullanın:
ngrok http 3000 --domain=myapp.ngrok.app
- Ücretsiz özel alt alan adları ile NPort'a geçin:
nport start 3000 --subdomain myapp
# Always https://myapp.nport.io
- Tünel başladığında webhook'ları API aracılığıyla programatik olarak güncelleyin
Sorun 2: Webhook'lar Zaman Aşımına Uğruyor
Sorun: Yerel sunucunuz yanıt vermek için çok uzun sürüyor. Slack gibi hizmetler 3 saniye içinde yanıt gerektirir.
Çözüm:
Asenkron olarak işleyin:
app.post('/webhook', async (req, res) => {
// Acknowledge immediately
res.json({ received: true });
// Process in background
processWebhookAsync(req.body).catch(console.error);
});
async function processWebhookAsync(data) {
// Do slow work here (database, external APIs, etc.)
await heavyProcessing(data);
}
Apidog ile test senaryolarında agresif zaman aşımı limitleri belirleyerek zaman aşımını test edin.
Sorun 3: Tarayıcıdan Gelen CORS Hataları
Sorun: Tünel URL'sine istek gönderen ön uç, CORS hataları alıyor.
Çözüm:
CORS başlıklarını yapılandırın:
const cors = require('cors');
app.use(cors({
origin: [
'http://localhost:3001', // Your frontend dev server
'https://abc123.ngrok.io' // Your tunnel URL
],
credentials: true
}));
Sorun 4: Ücretsiz Katmanda Hız Sınırlaması
Sorun: Ücretsiz tünellerin bağlantı limitleri vardır (ngrok: dakikada 40).
Çözümler:
- Hızlı ateşlenen bireysel testler yerine Apidog'da toplu test istekleri yapın
- Farklı hizmetler için birden fazla tünel kullanın
- Yoğun test yapıyorsanız ücretli katmana yükseltin
- Cloudflare Tunnel veya NPort gibi sınırsız hizmetlere geçin
Sorun 5: Tünel Sık Sık Bağlantıyı Kesiyor
Sorun: Ağ dengesizliği tünel kopmalarına neden oluyor.
Çözüm:
Otomatik yeniden başlatma için systemd/pm2 kullanın:
# Create systemd service
sudo nano /etc/systemd/system/ngrok.service
[Unit]
Description=ngrok tunnel
After=network.target
[Service]
Type=simple
User=youruser
WorkingDirectory=/home/youruser
ExecStart=/usr/local/bin/ngrok http 3000
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl enable ngrok
sudo systemctl start ngrok
Sorun 6: Belirli Bir Ağdan Tünele Ulaşılamıyor
Sorun: Kurumsal güvenlik duvarları veya kısıtlayıcı ağlar tünel trafiğini engelliyor.
Çözümler:
- Cloudflare Tunnel kullanın (nadiren engellenir)
- Size daha yakın bir tünel bölgesine geçin:
ngrok http 3000 --region eu
- Herkese açık tünel yerine özel ağ için Tailscale kullanın
Gelişmiş Desenler
Desen 1: Çok Portlu Tünelleme
Birden fazla hizmeti aynı anda yayınlayın:
# Terminal 1: API server
ngrok http 3000
# Terminal 2: Frontend dev server
ngrok http 3001
# Terminal 3: Webhook worker
ngrok http 3002
Veya ngrok yapılandırma dosyasını kullanın:
# ~/.ngrok2/ngrok.yml
tunnels:
api:
proto: http
addr: 3000
frontend:
proto: http
addr: 3001
worker:
proto: http
addr: 3002
ngrok start --all
Desen 2: Tünel + Docker Compose
# docker-compose.yml
version: '3'
services:
api:
build: .
ports:
- "3000:3000"
ngrok:
image: ngrok/ngrok:latest
command:
- "http"
- "api:3000"
environment:
NGROK_AUTHTOKEN: ${NGROK_AUTHTOKEN}
docker-compose up
Desen 3: Dinamik Tünel URL Enjeksiyonu
Uygulamanızı tünel URL'si ile otomatik olarak güncelleyin:
// start-tunnel.js
const ngrok = require('ngrok');
const fs = require('fs');
(async function() {
const url = await ngrok.connect(3000);
console.log(`Tunnel started: ${url}`);
// Update .env file
fs.appendFileSync('.env', `\nTUNNEL_URL=${url}\n`);
// Update Stripe webhook
await updateStripeWebhook(url);
})();
Desen 4: İstekleri Birden Fazla Ortama Yönlendirme
Aynı webhook'u geliştirme, hazırlık ve üretim ortamlarına karşı test edin:
// webhook-multiplexer.js
app.post('/webhook', async (req, res) => {
const environments = [
'http://localhost:3000',
'https://staging.api.com',
'https://api.yourapp.com'
];
// Forward to all environments
const results = await Promise.all(
environments.map(env =>
fetch(`${env}/webhook`, {
method: 'POST',
headers: req.headers,
body: JSON.stringify(req.body)
})
)
);
res.json({ forwarded: results.length });
});
Sonuç
Webhook veya geri arama alan localhost API'lerini test etmek, her değişiklik için hazırlık ortamına dağıtım yapmayı gerektirmez. Tünelleme hizmetleri, harici hizmetlerin geliştirme ortamınıza ulaşmasına olanak tanıyan geçici herkese açık URL'ler oluşturur.
Herhangi bir aracın ücretsiz katmanıyla başlayın. Webhook testi iş akışınızın günlük bir parçası haline gelirse, statik URL'ler ve ek özellikler için ücretli planları değerlendirin. Ancak çoğu geliştirici için, ücretsiz tünelleme hizmetleri, Apidog'un API test yetenekleriyle birleştiğinde, localhost API'lerini etkili bir şekilde test etmek için gereken her şeyi sağlar.
