Işık hızında, sıfır bağımlılıklı, dosya sistemi tabanlı ve akıllı veri üretme motoruna sahip mock API sunucusu.
Nullmock .json dosyalarınızı okur, /api/users/[id] gibi dinamik URL rotalarını yakalar, sorgu (query) parametrelerini anlar ve yerleşik sözlükleri veya akıllı tahmin motorunu kullanarak saniyeler içinde devasa boyutlarda sahte veri üretir.
- Sıfır Bağımlılık: Saf Node.js.
express,fakerveya şişkinnode_modulesklasörleri yok. - Dosya Sistemi Yönlendirmesi: API rotalarınızı klasörler belirler (Örn:
mocks/api/users/[id]/GET.json). - Akıllı Veri Motoru: JSON anahtarlarından veri tiplerini otomatik tahmin eder (Örn:
created_atiçin gerçek tarih,user_emailiçin e-posta üretir). - Yerleşik Sözlükler: Gerçekçi bölgesel veriler üretmek için
{{firstName:tr}}veya{{city:tr}}gibi etiketler kullanın. - Çoğaltma (Repeat) Komutu: Şablonunuza sadece
"_repeat": 100ekleyerek milisaniyeler içinde 100 kullanıcı üretin. - Kütüphane Modu: Sunucuyu başlatmadan motoru doğrudan Node.js betiklerinize (script) import edin.
Proje iskeletini oluşturmak için projenizin kök dizininde şu komutu çalıştırın:
npx nullmock initBu komut aşağıdaki yapıyı kuracaktır:
mocks/: API endpoint'leriniz için ana klasör.mocks/locales/: Kendi özel.jsonsözlüklerinizi buraya atın.mocks/_examples/: Anında başlamanız için 6 Altın API Şablonu içerir.
(Örneklerin oluşturulmasını atlamak için şunu çalıştırın: npx nullmock init --no-examples)
Seçenek 1: Hızlı Başlangıç
npx nullmockSeçenek 2: NPM Scripts (Önerilen)
Bunu package.json dosyanıza ekleyin:
"scripts": {
"mock": "nullmock"
}Ardından çalıştırın: npm run mock
init komutunu çalıştırdığınızda, Nullmock size endüstri standardı 6 şablon sunar. Bunları kopyalayıp API klasörlerinize yapıştırabilirsiniz:
1_basic_list.json: Basit, düz bir öğe dizisi (kategoriler, ülkeler için kullanışlıdır).2_paginated_list.json: Standart sayfalamalı (offset pagination) yapı (current_page, data, total).3_infinite_scroll.json: İmleç (cursor) tabanlı sayfalama yapısı (has_more, next_cursor).4_single_resource.json: Tek bir öğe için detaylı obje (Örn:/users/60).5_dashboard_overview.json: Hem özet metrikleri hem de son etkinlik dizilerini içeren hibrit yapı.6_lazy_auto_mock.json: Sıfır yapılandırmalı şablon. Sadece anahtarları yazın (Örn:"user_email": ""), değerleri boş bırakın; Nullmock'un akıllı motoru onları tahmin edip doldursun!
Nullmock, hızlı prototipleme için yerleşik bölgesel verilerle gelir. JSON dosyalarınızda {{category:lang}} sözdizimini kullanın.
Desteklenen Yerleşik Diller:
en(İngilizce)tr(Türkçe)az(Azerbaycanca)ru(Rusça)ka(Gürcüce)
Kullanım Örneği:
{
"name": "{{firstName:tr}} {{lastName:tr}}",
"location": "{{city:tr}}"
}Özel Sözlükler (Custom Dictionaries):
Kendi verilerinizi mi kullanmak istiyorsunuz? Sadece mocks/locales/ klasörü içine tr.json veya my_data.json oluşturun. Nullmock, projenizin sözlüklerine otomatik olarak yerleşik olanlardan daha yüksek öncelik verecektir.
Frontend uygulamanızın yüklenme (loading) durumlarını ve hata yönetimini kolayca test edin. Ağ gecikmesini ve HTTP durum kodlarını iki şekilde simüle edebilirsiniz:
1. URL Parametreleri ile (Dinamik Test) Mock dosyalarınızı değiştirmenize gerek yok! Sadece fetch URL'nize parametre ekleyin:
- Yüklenme ekranını test edin:
/api/users?_delay=2000(2 saniye bekler) - Yetkisiz girişi test edin:
/api/users?_status=401 - İkisini birleştirin:
/api/users?_delay=1000&_status=500
2. JSON Yapılandırması ile (Kalıcı)
_delay ve _status anahtarlarını doğrudan JSON dosyanızın içine ekleyin. Nullmock bunları uygulayacak ve istemciye (client) yanıt göndermeden önce temizleyecektir:
{
"_status": 404,
"_delay": 1500,
"error": "Kullanıcı bulunamadı"
}Fiyatlar, yaşlar veya cüzdan bakiyeleri için belirli bir aralıkta rastgele sayılara mı ihtiyacınız var? String (metin) değerlerinizde herhangi bir yere {{number:min-max}} etiketini eklemeniz yeterli!
{
"price": "{{number:10-500}}",
"age": "{{number:18-65}}"
}Nullmock'u bir sunucu olarak kullanmak zorunda değilsiniz. Güçlü üretim motorunu doğrudan backend betiklerinize, testlerinize veya seeder'larınıza import edebilirsiniz!
const { deepScanAndRepeat } = require('nullmock');
const myTemplate = {
"_repeat": 3,
"id": "{{id}}",
"email": "", // Akıllı tahmin
"name": "{{firstName:tr}}"
};
// Anında veri üretin! (Dinamik parametre olarak { id: 10 } gönderiyoruz)
const fakeData = deepScanAndRepeat(myTemplate, { id: 10 });
console.log(fakeData);Katkılarınız her zaman değerlidir! Lütfen Pull Request'lerinizi develop dalına (branch) yönlendirin.
MIT © modoldern