DEV Community

Cover image for Apidog'da Kod Yazmadan API Nasıl Mock'lanır
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Apidog'da Kod Yazmadan API Nasıl Mock'lanır

Ön uç ekibiniz engellendi: GET /users ve GET /orders henüz hazır değil, ancak kullanıcı arayüzünün liste, sayfalama ve boş durumları test etmek için gerçekçi verilere ihtiyacı var. JSON dosyalarını elle düzenlemek yerine, API şemanızdan otomatik mock üretin.

Apidog'u bugün deneyin

Apidog, uç nokta şemanızı okuyarak kod veya ek yapılandırma olmadan mock veri üretebilir. Bu özellik Akıllı Mock olarak adlandırılır: name alanı ad, email alanı e-posta, createdAt alanı tarih biçiminde veri üretir.

Bu yazıda şunları uygulayacaksınız:

  • GET /users ve GET /orders için mock oluşturma
  • Mock URL'sini bulma ve çağırma
  • Mock yanıt öncelik sırasını anlama
  • Akıllı Mock yanlış tahmin ettiğinde çıktıyı yönlendirme
  • Yerel, Bulut ve Çalıştırıcı Mock seçeneklerini seçme

Mocking kavramına giriş için API mocking'in ne olduğu ve nasıl çalıştığına bakın. Şema kısıtlamaları için JSON Schema dokümantasyonunu kullanabilirsiniz.

Akıllı Mock ne yapar?

Apidog mock motoru, API spesifikasyonunuza göre farklı yanıt türleri sunabilir:

  1. Akıllı Mock: Şemadan otomatik veri üretir.
  2. Yanıt Örneği: Tanımladığınız örnek gövdeyi döndürür.
  3. Özel yanıt: Belirli bir yanıtı doğrudan döndürür.
  4. Koşullu mocking: İstek parametrelerine göre farklı yanıt üretir.
  5. Mock scriptleri: İstekle ilişkili dinamik yanıtlar üretir.

Apidog mock seçenekleri

Akıllı Mock, bu seçenekler içindeki sıfır yapılandırmalı varsayılandır. Uç noktanın bir yanıt şeması varsa, Apidog alan adlarını, türlerini ve JSON Schema kısıtlamalarını kullanarak veri üretir.

Bu yaklaşımın pratik faydası şudur: API sözleşmeniz değiştiğinde mock da aynı şemadan üretildiği için güncel kalır.

Başlamadan önce: yanıt şeması ekleyin

Akıllı Mock'un tek zorunlu gereksinimi, uç noktada tanımlı bir yanıt şemasıdır.

  • API'yi Apidog'da tasarlıyorsanız, uç noktanın Response bölümüne şema ekleyin.
  • Bir OpenAPI dosyası içe aktardıysanız, yanıt şemaları genellikle dosyayla birlikte gelir.
  • Yanıt şeması yoksa, mock motorunun üretecek veri modeli olmaz.

Yerel Mock kullanacaksanız masaüstü istemcisi gerekir. Yerel Mock, Apidog Web üzerinde çalışmaz.

Apidog'u indirin.

Adım adım: GET /users ve GET /orders

Örnek olarak küçük bir mağaza API'si oluşturalım.

1. GET /users yanıtını tanımlayın

GET /users uç noktasına aşağıdaki yanıt gövdesini veya eşdeğer şemayı ekleyin:

{
  "id": 1024,
  "name": "Amara Osei",
  "email": "amara.osei@example.com",
  "phone": "+1-415-555-0148",
  "createdAt": "2026-03-11T09:24:00Z",
  "isActive": true
}
Enter fullscreen mode Exit fullscreen mode

Her alanın türünü açıkça tanımlayın:

Alan Önerilen tür
id integer
name string
email string
phone string
createdAt string/date-time
isActive boolean

2. GET /orders yanıtını tanımlayın

Sipariş uç noktasını bir dizi döndürecek şekilde ayarlayın:

[
  {
    "orderId": "ORD-58210",
    "userId": 1024,
    "total": 84.5,
    "currency": "USD",
    "status": "shipped",
    "createdAt": "2026-05-02T14:03:00Z"
  }
]
Enter fullscreen mode Exit fullscreen mode

Alan adı ve tür kombinasyonu ne kadar açıksa, Akıllı Mock'un ürettiği değerler o kadar anlamlı olur.

3. Mock URL'sini kopyalayın

Her uç nokta için otomatik bir mock URL'si oluşur:

  • Tasarım modunda, uç noktanın altındaki API sekmesini açın.
  • Hata Ayıklama modunda, Mock sekmesini açın.
  • Kopyala düğmesiyle URL'yi alın.

Kopyalanan URL yalnızca adresi içerir. GET dışındaki HTTP yöntemleri veya istek gövdesi gerekiyorsa, çağrıyı yaparken bunları ayrıca göndermeniz gerekir.

Yerel Mock, varsayılan olarak 127.0.0.1:4523 üzerinde çalışır. Yol modu örneği:

http://127.0.0.1:4523/m1/{projectID}-{versionNo}-{serverNo}/users
Enter fullscreen mode Exit fullscreen mode

Uç nokta kimliği ile çağrı yapmak için kimlik modu da kullanılabilir:

http://127.0.0.1:4523/m2/{projectID}-{versionNo}-{serverNo}/{endpointId}
Enter fullscreen mode Exit fullscreen mode

Apidog masaüstü istemcisi açıkken Yerel Mock otomatik olarak başlar.

4. Mock uç noktasını çağırın

GET /users için:

curl http://127.0.0.1:4523/m1/1234567-0-0/users
Enter fullscreen mode Exit fullscreen mode

Şemanıza uygun, aşağıdakine benzer bir yanıt alırsınız:

{
  "id": 3187,
  "name": "Diego Marchetti",
  "email": "diego.marchetti@example.net",
  "phone": "+1-628-555-0113",
  "createdAt": "2026-01-27T18:41:22Z",
  "isActive": true
}
Enter fullscreen mode Exit fullscreen mode

Alan adlarının etkisini görebilirsiniz:

  • name gerçekçi bir ad üretir.
  • email e-posta biçiminde veri üretir.
  • createdAt tarih-zaman biçimine uyar.
  • isActive boolean değer üretir.

Her yeni istekte dinamik veriler yeniden oluşturulabilir. Bu, arayüzünüzün farklı uzunluklardaki adlar, değişen sayılar ve çeşitli durumlarla nasıl çalıştığını test etmek için faydalıdır.

GET /orders için:

curl http://127.0.0.1:4523/m1/1234567-0-0/orders
Enter fullscreen mode Exit fullscreen mode

Bu çağrı, sipariş liste ekranınızda kullanabileceğiniz sipariş nesnelerinden oluşan bir dizi döndürür.

Akıllı Mock değerleri nasıl seçer?

Akıllı Mock, tek bir alan için veri üretirken aşağıdaki öncelik sırasını kullanır.

  1. Mock Alanı
  2. Özellik Adı Eşleştirme
  3. JSON Schema varsayımları

1. Mock Alanı

Bir alan için özel değer veya ifade tanımlarsanız, bu ayar en yüksek önceliğe sahiptir.

İki yaklaşım kullanabilirsiniz:

  • Sabit değer: Her istekte aynı değeri döndürür.
  • Faker ifadesi: Kontrollü ancak değişken veri üretir.

Örneğin, currency alanı her zaman USD olmalıysa sabit değer kullanın. status alanı için ise shipped, pending ve delivered değerleri üreten bir Faker ifadesi kullanabilirsiniz.

2. Özellik Adı Eşleştirme

Mock Alanı tanımlı değilse, Apidog alan adını yerleşik kurallarla eşleştirir.

Örneğin:

  • email → e-posta
  • name → kişi adı
  • phone → telefon numarası
  • createdAt → tarih-zaman

Bu kurallar Mock Ayarları altında bulunur ve kendi eşleştirme kurallarınızı ekleyebilirsiniz.

3. JSON Schema

Alan adı bir kuralla eşleşmiyorsa, Akıllı Mock JSON Schema türüne ve kısıtlamalarına göre veri üretir.

Örneğin, tanınmayan bir string alanı genel bir metin değeri alabilir. Ancak minLength, maxLength, pattern, minimum, maximum veya enum gibi kısıtlamalar eklerseniz üretilen veri bu sınırlara uyar.

Akıllı Mock yapılandırması

Akıllı Mock aşağıdaki JSON Schema kısıtlamalarını dikkate alır:

  • Dize uzunluğu
  • Enum değerleri
  • Sayı aralıkları
  • Dizi uzunlukları

Örneğin:

{
  "type": "string",
  "enum": ["pending", "shipped", "delivered"]
}
Enter fullscreen mode Exit fullscreen mode

Bu şemaya sahip status alanı yalnızca bu üç değerden birini döndürür.

Dizi için de minimum öğe sayısı belirleyebilirsiniz:

{
  "type": "array",
  "minItems": 3
}
Enter fullscreen mode Exit fullscreen mode

Bu durumda mock yanıtında en az üç öğe üretilir.

Apidog ayrıca farklı dil ve bölge formatlarında veri üretmek için mock yerellerini destekler. Japon pazarı için test yapıyorsanız, yereli değiştirerek ad ve adres formatlarını buna uygun üretebilirsiniz.

Akıllı Mock yanlış tahmin ettiğinde ne yapmalı?

Akıllı Mock bir çıkarım sistemidir. Örneğin:

  • sku alanı yerleşik bir kuralla eşleşmeyebilir.
  • total alanı iki ondalıklı para değeri yerine sıradan bir sayı üretebilir.

Bu durumlarda aşağıdaki sırayla ilerleyin.

Önce şemayı sıkılaştırın

Çoğu durumda en doğru çözüm, şemaya daha fazla kısıtlama eklemektir.

{
  "type": "number",
  "minimum": 1,
  "maximum": 1000
}
Enter fullscreen mode Exit fullscreen mode

status için enum, total için minimum ve maksimum, sku için ise desen tanımlayabilirsiniz:

{
  "type": "string",
  "pattern": "^SKU-[A-Z0-9]{6}$"
}
Enter fullscreen mode Exit fullscreen mode

Gerekirse Mock Alanı kullanın

Şema istediğiniz davranışı yeterince ifade etmiyorsa, alanın Mock Alanını yapılandırın.

  • currency için sabit USD değeri kullanın.
  • Değişken ancak kontrollü veri için Faker ifadesi kullanın.

Apidog'un Faker katmanı Mock.js ile benzer fikirler üzerine kuruludur. Sözdizimi ayrıntıları için Apidog'da Faker kullanımına bakın.

Tekrarlanan alanlar için eşleştirme kuralı ekleyin

sku gibi bir alan birçok uç noktada geçiyorsa, her alanı tek tek yapılandırmak yerine genel bir kural ekleyin:

  1. Ayarlar bölümünü açın.
  2. Genel Ayarlar > Özellik Ayarları > Mock Ayarları yoluna gidin.
  3. Yeni seçeneğine tıklayın.
  4. Alan adınızla eşleşen koşulu tanımlayın.
  5. Kullanılacak mock ifadesini ekleyin.

Bundan sonra proje genelindeki tüm sku alanları aynı kurala göre üretilir.

Mock öncelik sırası

Bir uç noktada birden fazla olası yanıt olduğunda, hangi yanıtın döneceği Proje Ayarları altındaki Mock Ayarları bölümünde bulunan Varsayılan mock yöntemi ayarına bağlıdır.

İki seçenek bulunur:

  • Önce Akıllı Mock: Mock BeklentisiAkıllı Mock
  • Önce Yanıt örneği: Mock BeklentisiYanıt ÖrneğiAkıllı Mock

Önemli kural: Koşulları eşleşen bir Mock Beklentisi, her zaman en yüksek önceliğe sahiptir.

Örneğin, userId=9999 için 404 dönen bir beklenti ayarlarsanız, varsayılan mock yönteminden bağımsız olarak bu yanıt döner.

Koşullu yanıtlar için Apidog'da koşullu API yanıtlarını mocklama rehberini inceleyin.

Pratik öncelik özeti:

Mock Beklentisi > Yanıt Örneği veya Akıllı Mock > Akıllı Mock yedeği
Enter fullscreen mode Exit fullscreen mode

Yerel, Bulut ve Çalıştırıcı Mock seçimi

Mock'un nasıl üretildiği ile nerede çalıştığı farklı konulardır. Apidog üç barındırma seçeneği sunar.

Yerel Mock

  • Bilgisayarınızda, Apidog masaüstü istemcisi ile çalışır.
  • İstemci açıkken erişilebilir.
  • 127.0.0.1:4523 üzerinde dinler.
  • Apidog Web'de kullanılmaz.

Tek başınıza ön uç geliştiriyorsanız en hızlı seçenektir.

Bulut Mock

  • Apidog sunucularında barındırılır.
  • 7/24 erişilebilir.
  • Varsayılan olarak kapalıdır.
  • Ortam yönetimi üzerinden etkinleştirilir.
  • https://mock.apidog.com adresini ve aynı m1/m2 yol yapısını kullanır.

Ekip arkadaşlarınızın veya dağıtılmış önizleme ortamlarının mock'a erişmesi gerekiyorsa Bulut Mock kullanın. Bu seçenek üretim trafiği için değil, test amaçlıdır.

Çalıştırıcı Mock

  • Kendi ekip altyapınızda barındırılır.
  • Ekip genelinde paylaşılabilir.
  • Mock'un dahili ağınızda kalması gereken ortamlar için uygundur.

Barındırılan mock seçeneklerini karşılaştırmak için çevrimiçi API mock araçları karşılaştırmamıza bakın. Bulut kurulumu için Apidog Bulut Mock kılavuzunu izleyin.

Yönlendirme tuzakları

Mock URL'leriyle çalışırken şu kurallara dikkat edin.

Yol / ile başlamalıdır

Doğru:

/orders
Enter fullscreen mode Exit fullscreen mode

Baştaki eğik çizgi olmayan tam URL'ler mock ortamını kullanmaz. Baştaki / olmayan yollar yalnızca kimlik modunda çalışır.

Aynı yöntem ve yola sahip uç noktaları ayırın

İki API aynı HTTP yöntemini ve yolu kullanıyorsa, yol modu tek başına yeterli olmayabilir. Belirli bir uç noktayı hedeflemek için sorgu parametresi ekleyin:

?apidogApiId={endpointId}
Enter fullscreen mode Exit fullscreen mode

Yenileme yeni veri üretebilir

Dinamik mock değerleri istek yenilendiğinde yeniden oluşturulur. Aynı yanıtı tekrar görüyorsanız, yeni istek yerine önbelleğe alınmış bir görünümle çalışıyor olabilirsiniz.

Apidog CLI ile sözleşmeyi güncel tutun

Mock sunucusu Yerel, Bulut veya Çalıştırıcı Mock üzerinden çalışır. Apidog CLI terminalden mock sunucusu başlatmaz veya barındırmaz.

CLI'ın rolü, mock'un arkasındaki API şemasını güncel tutmaktır.

Akıllı Mock çıktısı doğrudan uç nokta şemanızdan üretildiği için, sözleşme değiştiğinde şemayı da güncellemeniz gerekir. Apidog CLI; Cursor, Claude Code, Trae ve Codex gibi AI kodlama araçlarıyla birlikte uç noktaları ve şemaları oluşturma veya güncelleme iş akışlarında kullanılabilir.

Arka uç hazır olduğunda, aynı sözleşmeye karşı test senaryolarını CI içinde çalıştırabilirsiniz:

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

CLI kurulumu:

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

Node.js v16 veya üzeri gereklidir. Ardından token ile giriş yapın:

apidog login --with-token <your-token>
Enter fullscreen mode Exit fullscreen mode

CI/CD kurulumu için Apidog'u bir CI/CD boru hattında çalıştırma rehberini kullanın.

Sıkça Sorulan Sorular

Akıllı Mock için kod yazmam gerekir mi?

Hayır. Uç noktada bir yanıt şeması olduğu sürece Akıllı Mock otomatik veri üretir. Yalnızca belirli alanları geçersiz kılmak istediğinizde Faker ifadesi veya mock betiği kullanmanız gerekir. Temel kavramlar için mock API genel bakışına bakın.

Mock URL'im neden yanıt döndürmüyor?

En yaygın neden, uç noktada eksik yanıt şeması olmasıdır. Ayrıca şunları kontrol edin:

  • Yol / ile başlıyor mu?
  • Yerel Mock için Apidog istemcisi açık mı?
  • Doğru proje, sürüm ve sunucu kimlikleri kullanılıyor mu?

Belirli bir alanın sabit değer döndürmesini nasıl sağlarım?

İlgili alanın Mock Alanını yapılandırın. Sabit değer her istekte aynı çıktıyı döndürür. Faker ifadesi ise kontrollü çeşitlilik sağlar. Mock Alanı, ad eşleştirmesi ve şema varsayımlarından daha yüksek önceliğe sahiptir.

Ekip arkadaşlarım Yerel Mock'a erişebilir mi?

Yerel ağ üzerinden erişim mümkün olabilir, ancak Apidog istemcisi açık kalmalıdır. Sürekli ve paylaşılabilir erişim için Bulut Mock'u etkinleştirin.

Hem Yanıt Örneği hem Akıllı Mock varsa hangisi döner?

Bu, varsayılan mock yöntemine bağlıdır:

  • Önce Akıllı Mock seçeneğinde Akıllı Mock kullanılır.
  • Önce Yanıt örneği seçeneğinde Yanıt Örneği kullanılır.
  • Eşleşen bir Mock Beklentisi her iki seçeneği de geçersiz kılar.

Sonuç

Akıllı Mock, API şemanızı çalışan bir mock'a dönüştürür. Uygulama akışı basittir:

  1. Uç noktanın yanıt şemasını tanımlayın.
  2. API veya Mock sekmesinden mock URL'sini kopyalayın.
  3. URL'yi ön uçtan veya curl ile çağırın.
  4. Çıktı yeterince doğru değilse şemayı sıkılaştırın, Mock Alanı ekleyin veya özellik adı kuralı tanımlayın.
  5. Koşullu senaryolar için Mock Beklentilerinin en yüksek önceliğe sahip olduğunu unutmayın.

Top comments (0)