Begriffe
Jedes Produkt entwickelt sein eigenes Vokabular. Diese Seite erklärt unseres: was die Begriffe bedeuten und warum wir genau diese Wörter gewählt haben.
Simulation
Eine Simulation ist eine laufende Kopie eines Dienstes: Sie lebt unter ihrer eigenen URL und antwortet wie das Original. Wir sagen bewusst Simulation und nicht Mock. Ein Mock ist eine einzelne gefälschte Antwort, fest verdrahtet in einem Test. Eine Simulation verhält sich: Sie generiert gültige Daten aus deinen Schemas, validiert, was du schickst, injiziert Latenz und Fehler, kann an den echten Dienst weiterleiten und auf Mocks zurückfallen, wenn er ausfällt, und hält Zustand, wo der echte Dienst es auch täte. Am deutlichsten zeigt das ein Resilientes Backend, das ein Szenario ausführt: Eine Zahlung, die du jetzt autorisierst, später einziehst und nächste Woche erstattest, ist ein Gespräch mit Zustand, keine feste Antwort. Sim ist dasselbe Wort, nur kürzer; es begegnet dir in der App und in URLs.
Spec
Das OpenAPI-Dokument, das eine API beschreibt. Das Wort stammt aus der Branche, nicht von uns, und wir haben es behalten. Eine Spec ist hier die Quelle der Wahrheit: Alles, was eine Simulation ausliefert, ist aus ihr abgeleitet. Die Spec zu aktualisieren ist der Weg, die Simulation zu ändern.
Service
Eine API innerhalb einer Simulation. Eine Simulation kann mehrere Services nebeneinander bedienen, so wie dein Produktivsystem mit mehreren Abhängigkeiten spricht; eine App-Sim ist genau diese Komposition. Service, weil es für deinen Code genau das ist: das, was er aufruft.
Kann ein Service einen anderen Service aufrufen? Ja: Ein Codegen-Handler ist gewöhnlicher Go-Code, und gewöhnlicher Go-Code ruft auf, was er braucht, auch einen Nachbar-Service.
In einem Repo ist jeder Service ein eigenes Verzeichnis mit Specs; das services-Verzeichnis des Portable-Templates bringt zwei mit.
Endpunkt
Eine Methode und ein Pfad, auf die ein Service antwortet. Die meisten entstehen aus den Operationen der Spec. Statische Endpunkte sind die andere Sorte: Methode, Pfad, Status und Body, von Hand geschrieben, für die eine exakte Antwort, die ein Test braucht. Statisch, weil sie sich nie ändert.
Replay
Eine echte Antwort, einmal aufgezeichnet und bei passenden Anfragen erneut ausgeliefert. Replay, weil nichts erfunden wird: Was das Upstream wirklich geantwortet hat, wird noch einmal abgespielt. Du legst fest, was aufgezeichnet und wie Anfragen abgeglichen werden; wiedergegebener Verkehr erscheint im Verlauf wie alles andere.
Siehe Replays aufzeichnen und durchsuchen.
Verlauf
Das Protokoll jedes Aufrufs, den eine Simulation beantwortet hat: Methode, Pfad, Status, Dauer, und ob die Antwort vom Mock oder vom Upstream kam. Ein schlichter Name für eine schlichte Sache.
Kontext
Benannte Werte, die die generierten Daten steuern. Ohne einen Kontext ist ein generiertes Feld technisch gültig und offensichtlich fake; ein Kontext liefert die realistischen Werte, Währungen, Händlernamen, ID-Formate. Genau hier unterscheidet sich Mockzilla von anderen Mock-Diensten: Du steuerst mit ein paar Zeilen YAML, was eine Antwort enthält. Keine KI, keine Tokens, keine vorgenerierten Datensätze, keine andere Magie, und dieselbe Anfrage bekommt dieselbe Art von Antwort. In Resilienten Backends ist ein Kontext YAML-Werte, die statt dem verwendet werden, was der Anbieter mitliefert. Kontext, weil es das umgebende Wissen ist, das der Generator liest, wenn er ein Feld füllt.
Szenario
Eine Wenn-dann-Regel in einem Resilienten Backend: Wenn eine Anfrage einen Auslöser trifft, einen bestimmten Betrag, eine magische Kartennummer, ein Stichwort, dann folgt ein geskriptetes Ergebnis, ein Decline-Code, ein Timeout, ein Fall, der in die Prüfung geht. Anbieter machen dasselbe mit Testkartennummern; der Unterschied ist, dass hier du das Drehbuch schreibst. Szenario, weil du eine Situation probst, statt eine Antwort zu stubben.
Resilientes Backend
Ein Drop-in-Ersatz für die Sandbox eines Zahlungs- oder Identitätsanbieters. Endpunkte, Antwortstrukturen und Statuscodes sind die des Anbieters, deine Integration ändert also nichts außer ihrer Basis-URL. Resilient ist das Versprechen im Namen: Es bleibt erreichbar, wenn die Sandbox des Anbieters ausfällt, drosselt oder den Fehler nicht erzeugen kann, den du testen musst.
Sandbox
Deine eigene Instanz der API eines Anbieters. Das Wort des Anbieters, bewusst behalten: Du richtest deine Integration darauf wie auf dessen eigene Sandbox. Der Unterschied ist Besitz. Sie gehört dir: Du bestimmst, was sie antwortet, und die Tests anderer teilen sie nicht.
Katalog
Eine kuratierte Sammlung öffentlicher API-Specs, bereit, als Simulation deployt zu werden. Du stöberst, du wählst, du bekommst eine URL.
Portable und Codegen
Die zwei Wege, eine Simulation aus einem Repo auszuliefern. Portable packt deine Specs, wie sie sind; portable, weil dasselbe Paket überall läuft, in unserer Cloud, auf deinem Laptop, in Docker. Das Paket ist eine .mockz-Datei, und jede Simulation lässt sich als eine herunterladen und lokal ausführen. Codegen generiert typisierte Go-Handler aus deiner Spec, denen du echte Logik hinzufügst; der Name ist, was es wörtlich tut.
Siehe Portable Simulationen und Codegen-Simulationen.