Data Mocking

Möglichkeiten zum Erstellen eines fake Backends

Michael Kühnel

WAT?!?

Warum brauchen wir das?

  • Trennung zwischen Backend/Frontend
  • Entkoppelte Projekte
  • Frontend benötigt kein laufendes Backend und keine echten Daten
  • Nur die Struktur muss übereinstimmen

Möglichkeiten

  • JSON Files via Ajax
  • Online mocking services
  • »JSON Server«
  • Eigener Server

JSON Dateien via Ajax laden

Pro

  • Unkompliziert / Kein Tooling
  • Response Daten in Versionskontrolle

Kontra

  • Sehr beschränkte Funktionalität
  • ggf. keine Unterstützung deines JavaScript Frameworks
  • Keine HTTP Methoden außer GET abbildbar

  • Fehlerfälle (bis auf 404) nicht testbar 

  • Unterschiede zwischen fake und realem Backend

    • HTTP Header

    • URLs (inklusive Struktur)

    • etc.

Online mocking services

Webapplikationen zum erstellen von fake APIs

Pro

  • Gut bedienbar
  • Gute und (teilweise) mächtige Konfigurations-möglichkeiten

Contra

  • ggf. CORS Beschränkungen

  • Response Daten nicht in Versionskontrolle

  • Eigene Daten auf fremden Servern 😱

  • Abhängig vom Anbieter

    • Verfügbarkeit
    • Exportmöglichkeit
    • etc.
  • ggf. kostenpflichtig

»JSON Server« #FTW

JSON Server

Demo

Pro

  • Response Daten in Versionskontrolle
  • Einfachstes Setup
  • Unterstützt alle HTTP Verben
    • Persistiert Änderungen (POST, PUT, PATCH)

Kontra

  • Payload erwartet ein festes Format (JSON)

  • Keine »dynamischen« Routen

    • api/articles/{offset}/{count}
  • »Wartbarkeit« der JSON-Datei für die Responses

Eigener Server 🦄

Flexibilität vs. Komplexität 😬

Guter Kompromiss → »http-fake-backend«

DEMO

Pro

  • Response Daten in Versionskontrolle
  • Höchste Flexibilität

  • Einfaches Setup von
    • Endpunkten

    • URLs inkl. dynamischer Bestandteile

    • Erlaubten HTTP-Verben

    • Fehlern (Unterstützt alle http Statuscodes)

    • Automatischer Neustart des Server

      • bei Änderungen im Filesystem (JSON Dateien oder Endpunkt/URL Definitionen)

    • Yeoman Generator

      • mit Subgenerator zur Unterstützung beim Anlegen der API

Kontra

  • Kein persistieren der Payload Daten

    • (POST, PUT, PATCH)

Fazit

Die Komplexität der Anwendung entscheidet 😘

Fragen? 

Danke 😊

Data Mocking – Möglichkeiten zum Erstellen eines fake Backends

By Michael Kühnel

Data Mocking – Möglichkeiten zum Erstellen eines fake Backends

  • 2,506