Test aşamasıBu ortam lansman öncesi test aşamasında — tüm veriler lansmanda sıfırlanacak.
Mockomat
— Mimari

Bir kez yazdığın bir model.
Senkron kalan yüzeyler.

Mockomat dört fikir üzerine inşa edilmiştir. Birlikte, sahte verinin kod tabanının bir uzantısı gibi hissettirmesini sağlarlar — bir yan proje gibi değil. Sistemin nasıl düşündüğünü ve sana ne geri verdiğini burada bulabilirsin.

— İşlem hattı

Varlıklardan iki canlı yüzeye.

Varlıkları ve öznitelikleri tanımlarsın; Mockomat tipli bir GraphQL şeması derler, öznitelikleri veri havuzuna bağlar ve aynı derlenmiş yapıdan hem bir JSON endpoint hem de render edilmiş bir önizleme sunar.

TASARIM DERLEME SUNUM KULLANIM Modelin User · email · fullName · avatarUrl Order · orderNo · total · status Derleyici schema · types · resolvers havuz ↔ alan eşlemeleri seed planı DETERMİNİSTİK Runtime durumsuz · seed ile resolver tür başına renderer tür başına seed = sha(...) POST /graphql application/json Kodun, CI'ın ve yapay zeka ajanların için GET /preview text/html PM'ler, tasarımcılar ve paydaşlar için mockomat.pool tek ortak havuz · salt okunur
— Dört fikir

İlkeler, kalıplar değil.

Mockomat'ı özellik biriktirerek inşa etmedik. Her yetenek, bu dört taahhütten birinden kaynaklanır. Bunları anlarsan, sistemin geri kalanının nasıl davrandığını tahmin edebilirsin.

01

Önce şema.

Modeli sen tasarlarsın. Mockomat derler.

Her şey varlıkların ve özniteliklerinle başlar. Sahte veriler, GraphQL şeması, dokümantasyon, render edilmiş önizleme — hepsi tek bir doğru kaynaktan türetilir. Modeli değiştir, aşağı akıştaki her şey yeniden oluşturulur.

seed
02

Deterministik tekrar.

Aynı tohum girer. Aynı veri çıkar. Her seferinde.

Çalışma zamanı durumsuz ve tohum güdümlüdür. /graphql'e yapılan bir istek her an ekibinin üzerinde anlaştığı aynı tohumdan tekrar oynatılır — bugünkü bir anlık görüntü, yarın CI'daki bir anlık görüntüyle eşleşir. Güvenilmez fixture'lar yok, ortamlar arası kayma yok.

03

Doğuştan çok kiracılı.

Çalışma alanları, projeler, roller, kapsamlı anahtarlar.

Her hesap bir kiracı sınırıdır. İçinde projeler şemaları kapsar; roller düzenleme haklarını kapsar; API anahtarları dış erişimi kapsar. Yapılandırma, ilk bayttan itibaren kiracı başına izole edilmiştir — sonradan eklenmez.

JSON UI
04

İki yüzey, bir model.

Kod için makine okunabilir. İnceleme için insan okunabilir.

Aynı model, uygulaman için /graphql'i ve paydaşlar için /preview'ı sunar. Mühendisler JSON tüketir; tasarımcılar ve PM'ler aynı verinin render edilmiş bir tablosunu veya listesini görür. Ürün incelemeleri için ikinci bir doğru kaynak yok.

— Kod üretimi

Modelini gerçek bir proje olarak dışa aktarın.

Prototipleme bitip üretime geçildiğinde, Mockomat şeman servisimizde kilitli kalmaz. Tek tıkla, zaten doğruladığın aynı GraphQL sözleşmesine bağlı, tam tipli bir Angular istemcisi ve bir NestJS sunucu iskeleti oluşturulur.

FRONTEND Angular 17 · standalone components · Apollo client
BACKEND NestJS 10 · GraphQL code-first · resolver stubs
SCHEMA GraphQL SDL · her dışa aktarımda yeniden üretilir
codegen.pipeline · deterministik · idempotent
schema.graphql
modelin · 38 tür · 142 alan
derle
frontend/ — Angular
tipli sorgular · bileşenler
backend/ — NestJS
resolvers · DTOs · modules
MY-PROJECT.ZIP
📁 my-project/
📁 frontend/
📄 src/app/users/users.component.ts
📄 src/app/users/users.queries.ts ← tipli Apollo sorguları
📄 src/app/graphql.types.ts
📁 backend/
📄 src/users/users.resolver.ts
📄 src/users/user.dto.ts
📄 src/users/users.module.ts
📄 schema.graphql ← tek doğruluk kaynağı
📄 package.json
📄 README.md
— Determinizm neden önemli

Aynı girdi.
Aynı çıktı.
Her zaman.

Rastgele tohumlu sahte veriler testleri bozar, incelemeleri bozar ve güveni aşındırır. Mockomat'ın çalışma zamanı her yanıtı ekibinin seçtiği aynı tohumdan türetir. Gelecek ay bir kaydı tekrar çekin — aynı yapı, aynı değerler, aynı bağlantılar.

# aynı kullanıcıyı üç ay arayla iki kez iste
$ curl mockomat.app/p/abc/graphql -d '{ user(id:42) { email } }'
{ "data": { "user": { "email": "ada@bessemer.com" } } }
# 90 gün sonra, aynı sorgu…
$ curl mockomat.app/p/abc/graphql -d '{ user(id:42) { email } }'
{ "data": { "user": { "email": "ada@bessemer.com" } } }