DEV Community

Cover image for Apidog ile İntranetinizde Kendi Sunucunuzda Mock Sunucusu Nasıl Kurulur
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Apidog ile İntranetinizde Kendi Sunucunuzda Mock Sunucusu Nasıl Kurulur

Bazı ekipler API trafiğini buluta gönderemez. Kurumsal güvenlik duvarları üçüncü taraf hizmetlere erişimi engelleyebilir, uyumluluk kuralları istek/yanıt verilerinin şirket altyapısında kalmasını zorunlu tutabilir veya ortam tamamen hava boşluklu (air-gapped) olabilir. Bu senaryolarda, sahte veri kullanılsa bile harici altyapıda çalışan bir mock URL uygun değildir.

Apidog'u bugün deneyin

Apidog, bu ihtiyacı kendi kendine barındırılan bir çalıştırma aracıyla (runner) karşılar. Apidog Cloud Mock yerine kendi sunucunuza küçük bir program dağıtırsınız; mock yanıtları ağınızdan ayrılmadan bu makineden döner. Mock tasarımı Apidog projenizde kalır, yalnızca yanıtı sunan altyapı değişir.

Konuya daha geniş açıdan bakmak için kendi kendine barındırılan API sahte sunucuları rehberine, mock tanımlarının dayandığı standart için de OpenAPI Initiative sitesine bakabilirsiniz.

Kendi kendine barındırılan çalıştırma aracı nedir?

Apidog Kendi Kendine Barındırılan Çalıştırma Aracı, bağımsız bir makinede çalıştırdığınız otomatik bir programdır. Resmî adıyla General Runner, üç temel iş yapar:

  1. Zamanlanmış otomatik testleri çalıştırır.
  2. API belgelerini içe aktarır.
  3. Mock yanıtları sunar.

Bu yazıda üçüncü işlev olan self-hosted mock sunumuna odaklanacağız.

General Runner'ı dağıtıp Server Host değerini yapılandırdığınızda, projelerinizde otomatik olarak Runner Mock adlı bir ortam oluşur. Bu ortamla gönderdiğiniz istekler Apidog Cloud Mock yerine kendi çalıştırma aracınıza gider.

Bu yaklaşımı şu durumlarda kullanın:

  • Harici ana bilgisayarlara giden trafik engelleniyorsa veya denetleniyorsa.
  • Uyumluluk politikası istek verilerinin kurum içinde kalmasını gerektiriyorsa.
  • Ortam hava boşlukluysa ve cloud endpoint'lerine erişemiyorsa.
  • Mock gecikmesini internet yerine LAN içinde ölçmek istiyorsanız.

İnternete erişiminiz varsa ve bu tür bir gereksiniminiz yoksa, Apidog Cloud Mock daha düşük operasyonel yük getirir: Docker sunucusu veya proxy yönetmeniz gerekmez.

General Runner dağıtımı ekip kaynakları üzerinden yapılır. Bu nedenle ekip veya proje yöneticisi yetkisine ihtiyacınız vardır. Team Resources panelini göremiyorsanız yöneticinizden erişim istemeniz gerekir.

Başlamadan önce gerekli olanlar

Runner bir Docker konteyneri olarak çalışır. Bu nedenle çalıştıracağınız makinede Docker yüklü olmalıdır. Belgeler Docker 20.10.0 minimum sürümünü, 20.10.13 veya daha yeni sürümleri önerir.

Sürümü kontrol edin:

docker --version
Enter fullscreen mode Exit fullscreen mode

Ayrıca aşağıdakilere ihtiyacınız vardır:

  • Linux, macOS veya Windows çalışan bir sunucu/makine
  • Ekip üyelerinin ve Apidog hizmetinin erişebileceği sabit IP veya DNS adı
  • Docker
  • Apidog ekip veya proje yöneticisi yetkisi

Yapılandırmanın geri kalanını Apidog içinde yaparsınız.

General Runner'ı dağıtın

1. Dağıtım komutunu oluşturun

Apidog ana sayfasında aşağıdaki adımları izleyin:

  1. Ekibinizi seçin.
  2. Sağ kenar çubuğundan Resources bölümünü açın.
  3. Deploy General Runner seçeneğine tıklayın.
  4. Açılan pencerede dağıtım ayarlarını yapın.

Yapılandırabileceğiniz alanlar:

  • Server OS: Linux, macOS veya Windows.
  • Docker Image:
    • General: Node.js 18, Java 21, Python 3 ve PHP 8 içerir.
    • Slim: Daha küçük imaj için yalnızca Node.js 18 içerir.
    • Custom: Ek test çalışma zamanları gerektiğinde kendi Dockerfile dosyanızı kullanmanızı sağlar.
  • Exposed Port: -p parametresiyle ayarlanır. Örneğin -p 80:4524, ana bilgisayarın 80 numaralı portunu runner içindeki 4524 portuna eşler.
  • Mounted Data Directory: -v parametresiyle ayarlanır; runner verilerinin konteyner yeniden başlatılsa bile korunmasını sağlar.

Apidog oluşturduğu komuta bir token ekler. Bu komut güvenlik nedeniyle yalnızca bir kez gösterilir. Komutu hemen güvenli bir yere kopyalayın; token kaybolursa eski token'ı görüntülemek yerine yeni bir dağıtım komutu oluşturmanız gerekir.

2. Konteyneri sunucuda çalıştırın

Oluşturulan komutu hedef sunucunun terminalinde çalıştırın. Komutunuz aşağıdakine benzer; gerçek token değerini Apidog oluşturur:

docker run -d \
  --name apidog-runner \
  -p 80:4524 \
  -v /opt/apidog-runner/data:/app/data \
  apidog/runner:latest \
  --token <YOUR_GENERATED_TOKEN>
Enter fullscreen mode Exit fullscreen mode

Konteynerin ayakta olduğunu doğrulayın:

docker ps
Enter fullscreen mode Exit fullscreen mode

Çıktıda apidog-runner konteynerini ve port eşlemesini görmelisiniz. Docker Desktop kullanıyorsanız aynı bilgiyi arayüzden de kontrol edebilirsiniz.

3. Runner kaydını doğrulayın

Apidog'a dönün:

  1. Team Resources bölümünü açın.
  2. General Runner sayfasına gidin.
  3. Refresh düğmesine tıklayın.

Runner, başarılı bir kurulumdan sonra aşağıdaki durumlarla görünmelidir:

Durum Anlamı Yapılacak işlem
Started Runner etkin ve Apidog ile iletişim kuruyor. Normal durumdur.
Stopped Runner Apidog üzerinden manuel olarak durduruldu. Gerekirse yeniden başlatın.
Offline Runner, Apidog ile bağlantısını kaybetti. Konteyneri, DNS'i, firewall kurallarını ve ağ yolunu kontrol edin.

Runner ilk yenilemede görünmezse birkaç saniye bekleyip tekrar Refresh düğmesine basın.

Runner Mock ortamını etkinleştirin

Runner'ı dağıtmak tek başına mock trafiğini yönlendirmez. İsteklerin runner üzerinden dönmesi için Server Host değerini ayarlamanız gerekir.

Team Resources > General Runner bölümünde Server Host alanını bulun ve runner'ın erişilebilir adresini girin.

Örnekler:

http://127.0.0.1:80
Enter fullscreen mode Exit fullscreen mode

Yerel test için.

http://runner.internal.example.com:80
Enter fullscreen mode Exit fullscreen mode

Paylaşılan intranet sunucusu için.

https://runner.example.com:443
Enter fullscreen mode Exit fullscreen mode

TLS sonlandıran bir ters proxy kullanıyorsanız.

Server Host kaydedildiğinde, Apidog projenizde otomatik olarak Runner Mock ortamı oluşturulur.

Doğrulamak için:

  1. Projenizi açın.
  2. Environment Management bölümüne gidin.
  3. Ortam listesinde Runner Mock seçeneğini kontrol edin.

Bu ortamı manuel oluşturmanız gerekmez; Server Host ayarı bunu otomatik olarak ekler.

Self-hosted mock üzerinden istek gönderin

Örneğin projenizde aşağıdaki endpoint tanımlı olsun:

GET /orders/{orderId}
Enter fullscreen mode Exit fullscreen mode

İstek göndermek için:

  1. Endpoint'i Apidog içinde açın.
  2. Üstteki ortam menüsünden Cloud Mock yerine Runner Mock seçin.
  3. İsteği gönderin.

Runner erişim adresiniz üzerinden aynı isteği curl ile de test edebilirsiniz:

curl http://runner.internal.example.com:80/orders/10583
Enter fullscreen mode Exit fullscreen mode

Örnek yanıt:

{
  "orderId": 10583,
  "customerEmail": "amelia.turner@example.com",
  "status": "shipped",
  "total": 148.5,
  "currency": "USD",
  "createdAt": "2026-07-14T09:32:11Z"
}
Enter fullscreen mode Exit fullscreen mode

Bu yanıt genel internete çıkmadan kendi ağınızda üretilir ve sunulur. Apidog, OpenAPI şemanızdaki alan türlerini ve alan adlarını kullanarak gerçekçi mock veriler oluşturur.

Örneğin customerEmail alanı, e-posta türünde bir değer döndürür. Bu davranış hakkında daha fazla bilgi için akıllı sahte ile gerçekçi sahte verileri otomatik olarak oluşturma rehberine bakabilirsiniz.

Belirli bir istek için sabit veya kurallı bir yanıt döndürmek istiyorsanız endpoint'e mock expectation ekleyin. Runner, bu expectation'ları Cloud Mock ile aynı mantıkla sunar. Mock tasarımıyla ilgili genel kavramlar API sahte oluşturma rehberinde açıklanır.

HTTPS, dosya bağlamaları ve operasyonel ayrıntılar

HTTPS için ters proxy kullanın

Runner yerleşik sertifika yönetimi veya otomatik TLS sağlama sunmaz. https:// kullanmanız gerekiyorsa TLS'yi runner'ın önündeki bir ters proxy'de sonlandırın.

Örneğin Nginx ile 4524 portundaki runner'a proxy geçebilirsiniz:

server {
    listen 443 ssl;
    server_name runner.example.com;

    ssl_certificate     /etc/ssl/certs/runner.example.com.pem;
    ssl_certificate_key /etc/ssl/private/runner.example.com.key;

    location / {
        proxy_pass http://127.0.0.1:4524;
        proxy_set_header Host $host;
    }
}
Enter fullscreen mode Exit fullscreen mode

Bu yapılandırmadan sonra Server Host değeriniz şöyle olur:

https://runner.example.com:443
Enter fullscreen mode Exit fullscreen mode

Ters proxy kullanmıyorsanız Server Host için HTTP adresini kullanın:

http://sunucu_adi:baglanti_noktasi
Enter fullscreen mode Exit fullscreen mode

Runner'ın doğrudan TLS trafiğine yanıt vermesini beklemeyin. HTTPS temelleri için MDN HTTPS kılavuzuna bakabilirsiniz.

Dosya bağlamaları sabit yollar kullanır

Mock veya test işlemleriniz ek dosyalara ihtiyaç duyuyorsa runner bunları konteyner içindeki belirli yollar altında bekler:

  • Harici programlar: /app/external-programs/
  • Veritabanı bağlantı yapılandırması: /app/database/database-connections.json
  • SSL istemci sertifikaları: /app/ssl/ssl-client-cert-list.json

Bu dosyaları Docker volume bağlamalarıyla ekleyin:

-v /host/external-programs:/app/external-programs \
-v /host/database-connections.json:/app/database/database-connections.json \
-v /host/ssl-client-cert-list.json:/app/ssl/ssl-client-cert-list.json
Enter fullscreen mode Exit fullscreen mode

Bu yaklaşım, konteyner yeniden başlatılsa bile gerekli dosyaların korunmasını sağlar.

Yeniden dağıtım ve yükseltme

Yeni bir runner sürümü yayımlandığında Apidog arayüzünde Upgrade seçeneğini kullanabilirsiniz. Ayrıca More Actions menüsünde Redeploy seçeneği bulunur.

Bu işlemler çalışan konteyneri durdurur ve yeni konteyneri başlatır. Kısa süreli mock erişim kesintisi oluşabilir; ancak Apidog istemcisindeki mevcut zamanlanmış görev yapılandırmaları korunur.

Apidog CLI ile iş akışını otomatikleştirin

Runner ile Apidog CLI'yi karıştırmayın:

  • General Runner: Uzun süre çalışan bir servistir; mock yanıtları sunar ve zamanlanmış görevleri çalıştırır.
  • Apidog CLI: CI ortamlarında tek seferlik test çalıştırmak için kullanılır.

CLI bir mock sunucusu başlatmaz, barındırmaz veya port dinlemez. Şu komutlar yoktur:

apidog run mock
apidog mock serve
Enter fullscreen mode Exit fullscreen mode

apidog run test senaryolarını, test senaryosu klasörlerini ve test paketlerini çalıştırır. mock komut grubu ise mock expectation verilerini CRUD işlemleriyle yönetir. Mock trafiğini sunma görevi General Runner veya Cloud Mock'a aittir.

Self-hosted mock ile frontend geliştirmeyi backend'den bağımsız hale getirdikten sonra, aynı API sözleşmesini gerçek backend'e karşı CI içinde test edebilirsiniz:

apidog run -t <scenario_id> -e <env_id> -r html,cli
Enter fullscreen mode Exit fullscreen mode

Bu komut:

  • Belirtilen test senaryosunu çalıştırır.
  • Seçilen ortamı kullanır.
  • HTML ve CLI raporu üretir.

CLI kurulumu için Node.js v16 veya üzeri gerekir:

npm install -g apidog-cli
Enter fullscreen mode Exit fullscreen mode

Giriş ve token yapılandırması için Apidog CLI kurulum kılavuzunu takip edin. Testleri her push işleminde çalıştırmak için Apidog CLI CI/CD kılavuzunu pipeline'ınıza ekleyin.

Terminalden mock expectation yönetimi hakkında daha fazla ayrıntı için CLI'dan API'leri sahte oluşturma yazısına bakın.

Sıkça sorulan sorular

Ekibim internete erişebiliyorsa self-hosted runner gerekli mi?

Genellikle hayır. Cloud Mock dağıtım gerektirmez ve daha basittir. Runner'ı; giden trafiğin engellendiği veya denetlendiği, verilerin dahili altyapıda kalması gerektiği ya da ortamın air-gapped olduğu durumlarda tercih edin.

İki yaklaşımı karşılaştırmak için Apidog Cloud Mock rehberini inceleyin.

Apidog CLI self-hosted mock sunucusu başlatabilir mi?

Hayır. CLI testleri apidog run ile çalıştırır ve mock expectation verilerini mock komut grubuyla yönetir. Mock yanıtlarını General Runner veya Cloud Mock sunar.

Runner kendi başına HTTPS destekliyor mu?

Runner sertifika sağlamaz veya yönetmez. HTTPS için önüne Nginx gibi bir ters proxy koyun ve Server Host değerini proxy'nin https:// adresi olarak ayarlayın.

Konteyner çalışıyor, ancak runner neden Apidog'da görünmüyor?

Şu kontrolleri yapın:

docker ps
Enter fullscreen mode Exit fullscreen mode

Ardından:

  1. Apidog'da Team Resources > General Runner bölümünü açın.
  2. Refresh düğmesine tıklayın.
  3. Runner'ın Started durumuna geçtiğini doğrulayın.
  4. Sunucunun ağ, DNS ve firewall kurallarının Apidog erişimine izin verdiğini kontrol edin.

Offline durumu bağlantı sorunu olduğunu, Started durumu ise runner'ın kullanıma hazır olduğunu gösterir.

Birden fazla ekip aynı runner'ı paylaşabilir mi?

Runner, dağıtıldığı ekibe kaydolur ve o ekipteki projelerde Runner Mock ortamı görünür. Dağıtılmış ekipler için runner sayısını ve konumunu planlarken küresel ekipler arasında sahte ortamları paylaşma rehberindeki modellerden yararlanabilirsiniz.

Özet

General Runner ile self-hosted mock kullanmak, mock tasarımını Apidog projenizde tutarken istek verilerini kendi altyapınızda tutmanızı sağlar.

Uygulama akışı nettir:

  1. Docker tabanlı runner'ı dağıtın.
  2. Runner'ın erişilebilir adresini Server Host olarak ayarlayın.
  3. Projede otomatik oluşan Runner Mock ortamını seçin.
  4. İstekleri intranet içindeki mock sunucunuza gönderin.
  5. Gerçek backend testlerini Apidog CLI ile CI ortamında çalıştırın.

Cloud erişimi mümkün değilse runner kullanın; mümkünse daha az operasyonel yük için Cloud Mock tercih edin. Başlamak için Apidog'u indirin, runner'ı dağıtın ve ilk Runner Mock yanıtınızı ağınızdan çıkmadan alın.

Top comments (0)