DEV Community

Cover image for Dummy-API testen: Eigene Fake-API erstellen und nutzen
Emre Demir
Emre Demir

Posted on • Originally published at apidog.com

Dummy-API testen: Eigene Fake-API erstellen und nutzen

Beim Erstellen eines Frontends, beim Debuggen eines Clients oder beim Erlernen einer neuen HTTP-Bibliothek benötigen Sie oft einen Endpunkt, der realistisch aussehendes JSON zurückgibt, ohne ein Backend aufzusetzen. Eine Dummy-API bietet genau das: einen öffentlichen, kostenlosen, sofort nutzbaren Dienst. In diesem Leitfaden sehen Sie, welche Dummy-APIs sich für welche Tests eignen, wie Sie sie mit curl, fetch und Python aufrufen und wann Sie besser Ihre eigene Fake-REST-API erstellen. Für die Grundlagen von HTTP-Requests passt der MDN-Leitfaden zur Verwendung der Fetch API gut dazu.

Apidog noch heute ausprobieren

Was eine Dummy-API tatsächlich ist

Eine Dummy-API ist ein gehosteter Dienst, der vorgefertigtes JSON für typische Ressourcentypen zurückgibt, zum Beispiel Benutzer, Beiträge, Produkte, Warenkörbe oder Aufgaben. Sie müssen sich nicht registrieren, nichts hosten und riskieren keine Produktionsdaten.

Typischerweise unterstützen diese APIs:

  • GET zum Lesen von Daten
  • POST zum Erstellen von Testdaten
  • PUT oder PATCH zum Aktualisieren
  • DELETE zum Löschen

Wichtig: Schreiboperationen sind meistens nur simuliert. Der Server gibt Ihre Nutzlast mit einer ID zurück, speichert sie aber nicht dauerhaft.

Das macht Dummy-APIs ideal für:

  • schnelle Frontend-Prototypen
  • das Testen von HTTP-Clients
  • Demos für fetch, Axios oder requests
  • erste UI-States mit realistisch wirkendem JSON

Sie sind weniger geeignet, sobald Sie eigene Datenmodelle, persistente Zustände oder kontrollierte Fehlerfälle benötigen.

Die besten kostenlosen Dummy- und Fake-APIs zum Testen

Die folgenden APIs sind kostenlos nutzbar und benötigen kein eigenes Backend-Setup.

JSONPlaceholder

JSONPlaceholder ist der Klassiker für einfache REST-Tests. Es stellt sechs verwandte Ressourcen bereit:

  • 100 Beiträge
  • 500 Kommentare
  • 100 Alben
  • 5.000 Fotos
  • 200 Aufgaben
  • 10 Benutzer

Die Beziehungen sind brauchbar für verschachtelte Abrufe, zum Beispiel Beiträge mit Kommentaren oder Alben mit Fotos.

curl https://jsonplaceholder.typicode.com/posts/1
Enter fullscreen mode Exit fullscreen mode

Beispiel mit JavaScript:

const res = await fetch('https://jsonplaceholder.typicode.com/posts/1');
const post = await res.json();

console.log(post.title);
Enter fullscreen mode Exit fullscreen mode

Ein POST wird akzeptiert, aber nicht gespeichert:

curl -X POST https://jsonplaceholder.typicode.com/posts \
  -H "Content-Type: application/json" \
  -d '{"title":"Hallo","body":"Test","userId":1}'
Enter fullscreen mode Exit fullscreen mode

JSONPlaceholder gibt eine simulierte ID zurück, persistiert den Datensatz aber nicht.

DummyJSON

DummyJSON ist umfangreicher und eignet sich besonders für produktnahe UI-Prototypen. Es liefert unter anderem:

  • Produkte
  • Warenkörbe
  • Benutzer
  • Beiträge
  • Kommentare
  • Zitate
  • Aufgaben
  • Rezepte

Für E-Commerce-Frontends oder Login-Flows ist DummyJSON oft praktischer als JSONPlaceholder.

curl https://dummyjson.com/products/1
Enter fullscreen mode Exit fullscreen mode

Beispiel mit fetch:

const res = await fetch('https://dummyjson.com/products/1');
const product = await res.json();

console.log(product.title, product.price);
Enter fullscreen mode Exit fullscreen mode

DummyJSON bietet außerdem einen Authentifizierungs-Endpunkt, über den Sie einen Benutzernamen und ein Passwort senden und ein Token erhalten können. Das ist nützlich, wenn Sie Token-Speicherung und authentifizierte Requests üben möchten, ohne einen echten Identity Provider anzubinden.

reqres.in

reqres.in konzentriert sich auf typische Request- und Response-Flows:

  • Benutzer auflisten
  • einzelnen Benutzer abrufen
  • registrieren
  • anmelden
  • verzögerte Antworten testen

Wichtig: Der kostenlose Tarif erwartet einen API-Key-Header. Senden Sie x-api-key: reqres-free-v1, sonst erhalten Sie einen 401-Fehler.

curl https://reqres.in/api/users/2 \
  -H "x-api-key: reqres-free-v1"
Enter fullscreen mode Exit fullscreen mode

Beispiel für eine Login-Anfrage:

curl -X POST https://reqres.in/api/login \
  -H "Content-Type: application/json" \
  -H "x-api-key: reqres-free-v1" \
  -d '{"email":"eve.holt@reqres.in","password":"cityslicka"}'
Enter fullscreen mode Exit fullscreen mode

Welche Dummy-API wofür passt

Dummy-API Am besten geeignet für Auth-Flow Schreibpersistenz
JSONPlaceholder Verschachtelte Lesezugriffe, Blog-ähnliche Daten Nein Gefälscht, nicht gespeichert
DummyJSON E-Commerce, Warenkörbe, Login Ja, Token Gefälscht, nicht gespeichert
reqres.in Paginierung, Registrierungs- und Login-Demos API-Key-Header Gefälscht, nicht gespeichert

Wenn Sie mehr Optionen benötigen, helfen die Zusammenstellung der öffentlichen APIs zum Testen und die Liste der kostenlosen öffentlichen APIs für Entwickler, etwa für themenbezogene Daten wie Wetter oder Währungen.

Wie Sie eine Dummy-API in Ihrem Code aufrufen

Der Aufruf funktioniert wie bei jedem anderen HTTP-Endpunkt. Sie senden einen Request, lesen den Statuscode und parsen die JSON-Antwort.

JavaScript mit fetch

// Lesen
const res = await fetch('https://dummyjson.com/users/1');

if (!res.ok) {
  throw new Error(`Request fehlgeschlagen: ${res.status}`);
}

const user = await res.json();
console.log(user.firstName);

// Schreiben: wird zurückgegeben, aber nicht persistent gespeichert
const created = await fetch('https://dummyjson.com/users/add', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    firstName: 'Ada',
    lastName: 'Lovelace',
  }),
});

console.log(await created.json());
Enter fullscreen mode Exit fullscreen mode

Python mit requests

import requests

r = requests.get("https://jsonplaceholder.typicode.com/todos/1")
r.raise_for_status()

print(r.json())
Enter fullscreen mode Exit fullscreen mode

Einfache Assertion in einem Test

Dummy-APIs eignen sich auch für schnelle Integrationstests:

import assert from 'node:assert/strict';

const res = await fetch('https://jsonplaceholder.typicode.com/todos/1');
const todo = await res.json();

assert.equal(res.status, 200);
assert.equal(todo.id, 1);
assert.equal(typeof todo.title, 'string');
Enter fullscreen mode Exit fullscreen mode

Wenn Sie realistischere Werte für Tests benötigen, zeigt der Leitfaden zum Erstellen realistischer API-Testdaten, wie Sie Namen, E-Mails und Zeitstempel erzeugen, die eher wie Produktionsdaten aussehen als test123.

Wenn eine öffentliche Dummy-API nicht mehr ausreicht

Öffentliche Dummy-APIs sind praktisch, solange Sie generische Daten akzeptieren können. In diesen Fällen stoßen Sie schnell an Grenzen:

  • Ihre Datenstrukturen stimmen nicht überein.

    Ihre App erwartet subscription_tier und ein verschachteltes billing-Objekt. JSONPlaceholder liefert aber posts, albums und todos.

  • Sie benötigen Zustand.

    Ein echter Warenkorb verändert sich, wenn Sie einen Artikel hinzufügen. Dummy-APIs vergessen Ihren POST, sobald die Antwort zurückgegeben wurde.

  • Sie benötigen kontrollierte Fehler.

    Ein 429, ein langsamer 200 oder ein falsch formatierter Body lassen sich mit öffentlichen Diensten oft nicht gezielt reproduzieren.

  • Frontend und Backend entstehen parallel.

    Ihr Frontend benötigt Endpunkte, die dem vereinbarten API-Vertrag entsprechen, bevor das Backend fertig ist.

An diesem Punkt brauchen Sie keine geliehene API mehr, sondern eine eigene Fake-API mit Ihren Strukturen und kontrollierbaren Antworten. Genau dafür ist eine Mock-API zum Testen sinnvoll.

Wie Sie Ihre eigene Fake-API mit Apidog erstellen

Apidog ist eine API-Plattform für Design, Tests, Debugging und Mocking. Das Mocking ist schema-gesteuert: Apidog liest die Struktur Ihrer Endpunkte und generiert passende Fake-Daten anhand integrierter Faker-Regeln.

Apidog Mock API

Die Kurzversion des Workflows:

  1. Endpunkt erstellen oder importieren

    Definieren Sie eine neue API in Apidog oder importieren Sie eine bestehende OpenAPI- oder Swagger-Datei. Apidog liest das Schema aus der Spezifikation.

  2. Smart Mock Daten generieren lassen

    Für ein Feld wie email erzeugt Apidog eine E-Mail-Adresse. Für createdAt einen Zeitstempel. Für price eine Zahl. Regeln können pro Feld angepasst werden.

  3. Mock-URL aufrufen

    Apidog stellt für jeden Endpunkt eine Mock-URL bereit. Diese rufen Sie aus Frontend, Tests oder curl auf — wie eine öffentliche Dummy-API, nur mit Ihrem eigenen Vertrag.

  4. Fehler und Verzögerungen konfigurieren

    Sie können Antworten wie 404, 500 oder verzögerte Responses definieren. Damit testen Sie auch Fehlerpfade, die öffentliche Dummy-APIs selten abdecken.

Da der Mock aus Ihrer Spezifikation entsteht, bleibt er näher an Ihrem API-Design. Wenn Sie ein Feld ändern, kann der Mock die neue Struktur abbilden. Mehr dazu finden Sie im Leitfaden zum Generieren von Mock-Daten aus OpenAPI-Schemata.

Öffentliche Dummy-API vs. eigener Apidog-Mock

Bedarf Öffentliche Dummy-API Apidog-Mock
Schnelle Nur-Lese-Daten Ausgezeichnet Ausgezeichnet
Ihre genauen Datenstrukturen Nein Ja
Benutzerdefinierte Fehler- und Verzögerungsantworten Nein Ja
Entspricht Ihrem OpenAPI-Vertrag Nein Ja
Einrichtungszeit Keine Minuten

Eine öffentliche Dummy-API ist die beste Wahl, wenn Sie sofort irgendein JSON benötigen. Ein eigener Apidog-Mock ist sinnvoll, sobald die Antwortstruktur Ihrem echten API-Vertrag entsprechen muss.

In der Praxis nutzen viele Teams beides:

  • öffentliche Dummy-APIs für Experimente und Lernbeispiele
  • eigene Mocks für Features, Tests und Frontend-Entwicklung gegen einen konkreten Vertrag

Häufig gestellte Fragen

Ist eine Dummy-API dasselbe wie eine Mock-API?

Nicht ganz. Eine Dummy-API ist meist ein öffentlicher, gemeinsam genutzter Dienst mit festen Beispieldaten, etwa JSONPlaceholder. Eine Mock-API definieren und kontrollieren Sie selbst. Sie gibt Ihre eigenen Strukturen, Statuscodes und Verhaltensweisen zurück.

Eine Dummy-API ist also eine Art fertiger Mock, der bereits von jemand anderem gehostet wird. Weitere Details finden Sie in der Erklärung: Was eine Mock-API ist.

Sind kostenlose Fake-APIs sicher für echte Daten?

Nein. Senden Sie niemals echte Benutzerdaten, Secrets, Passwörter oder Tokens an eine öffentliche Dummy-API. Behandeln Sie alles, was Sie posten, als potenziell protokolliert und sichtbar.

Verwenden Sie nur Wegwerf-Testdaten. Wenn Sie Datenschutz, Kontrolle oder Persistenz benötigen, nutzen Sie einen eigenen Mock oder ein echtes Backend.

Speichern Dummy-APIs die von mir gesendeten Daten?

Fast nie. JSONPlaceholder, DummyJSON und reqres.in akzeptieren Schreibanfragen und geben ein Ergebnis mit generierter ID zurück. Die Daten werden aber nicht dauerhaft gespeichert.

Wenn Sie einen Zustand benötigen, der über mehrere Requests hinweg erhalten bleibt, brauchen Sie einen zustandsbehafteten Mock oder ein echtes Backend.

Kann ich eine Fake-API ohne Code schreiben?

Ja. Mit Apidog definieren Sie die Endpunktstruktur und lassen Smart Mocking die Daten generieren, ohne Servercode zu schreiben. Alternativ importieren Sie eine OpenAPI-Datei und erhalten daraus Mock-Endpunkte.

Zusammenfassung

Öffentliche Dummy-APIs wie JSONPlaceholder, DummyJSON und reqres.in sind der schnellste Weg, um realistisches JSON für Prototyping, Lernen und einfache Tests zu erhalten. Sie sind kostenlos, sofort verfügbar und benötigen kein Setup.

Sobald Sie eigene Datenstrukturen, kontrollierte Fehlerantworten oder einen API-Vertrag abbilden müssen, sollten Sie eine eigene Fake-API verwenden. Mit Apidog können Sie eine Spezifikation importieren, schema-gesteuerte Mock-Daten generieren und Ihre eigenen Endpunkte in wenigen Minuten aufrufen. Laden Sie Apidog herunter und erstellen Sie einen funktionierenden Mock, bevor das Backend fertig ist.

Top comments (0)