© saicle/Shutterstock.com
PHP Magazin
Ein Mock-Server für die Entwicklung

Node.js-Module: JSON Server

Bei der Entwicklung von Web-Frontends ist man in den meisten Fällen auf ein funktionierendes Backend angewiesen. Oft werden Frontend und Backend getrennt voneinander entwickelt. Das bedeutet, dass die Frontend-Funktionalität erst getestet werden kann, wenn das Backend die Gegenstelle zur Verfügung stellt. Um Ihre Abhängigkeit vom Backend etwas zu lösen, können Sie stattdessen auf Mock-Server zurückgreifen.

Sebastian Springer


Diese Mock-Server-Systeme übernehmen die Rolle des Backends und stellen die entsprechenden Schnittstellen zur Verfügung, implementieren allerdings keinerlei Businesslogik. Damit Sie diese Art von Hilfssystem nicht selbst implementieren müssen, existiert ein Node.js-Modul mit dem Namen JSON Server [1]. Es wird, wie der Name andeutet, aus einer JSON-Datei gespeist. Allerdings kann JSON Server wesentlich mehr leisten, als nur ein rein lesendes Interface zu bieten: Sie können über die HTTP-Methoden POST, PUT, PATCH und DELETE auch schreibend auf den Server zugreifen.

Installation

JSON Server wird als Open-Source-Projekt unter der MIT-Lizenz auf GitHub verwaltet und ist als npm-Paket unter dem Namen json-server verfügbar. Mit dem Kommando npm install -D json-server installieren Sie das Paket als DevDependency in Ihrem Projekt. Seit der Version 5.2 von npm können Sie mit dem Kommando npx JSON Server direkt in Ihrem Projekt ausführen, ohne dass Sie das Paket global auf Ihrem System installieren müssen. Bevor Sie den Server starten können, müssen Sie zuvor eine Datenbankdatei erzeugen. Hier ein Beispiel für eine solche Datei:

{ "todo": [{ "id": 1,"title": "get up" },{ "id": 2, "title": "eat" }]}

Speichern Sie diese Datei unter dem Namen db.json, können Sie mit dem Kommando npx json-server db.json starten. Standardmäßig wird der Server an Port 3000 gebunden, sodass Sie ihn unter dem URL http://localhost:3000 ansprechen können. Für jede Eigenschaft der obersten Ebene der Datenbankdatei wird eine Route erzeugt. Für das Beispiel bedeutet das, dass Sie mit http://localhost:3000/todo die Liste der Todos abrufen können. Sollte dieser Port auf Ihrem System bereits belegt sein, können Sie mit der Option —port einen anderen Port wählen.

Lesender Zugriff

JSON Server bietet Ihnen eine Schnittstelle, wie Sie sie aus vielen REST-APIs kennen. Mit einem allgemeinen Pfad, wie hier /todo, erhalten Sie alle zugehörigen Datensätze. Sind Sie nur an einem bestimmten Objekt interessiert, können Sie es über die ID-Eigenschaft identifizieren und den Wert im Pfad angeben. Den Eintrag mit der ID 4 erhalten Sie über den URL http://localhost:3000/todo/4. Sie können zusätzlich zum Zugriff auf die einzelnen Datensätze auch die Liste aller Datensätze nach bestimmten Kriterien filtern. In diesem Fall kommt der Query-String im URL zum Einsatz. Um den zweiten Eintrag aus der Liste mit dem Titel eat abzufragen, verwenden Sie den folgenden URL: http://localhost:3000/todo?title=eat.

Um die Antwor...

PHP Magazin
Ein Mock-Server für die Entwicklung

Node.js-Module: JSON Server

Bei der Entwicklung von Web-Frontends ist man in den meisten Fällen auf ein funktionierendes Backend angewiesen. Oft werden Frontend und Backend getrennt voneinander entwickelt. Das bedeutet, dass die Frontend-Funktionalität erst getestet werden kann, wenn das Backend die Gegenstelle zur Verfügung stellt. Um Ihre Abhängigkeit vom Backend etwas zu lösen, können Sie stattdessen auf Mock-Server zurückgreifen.

Sebastian Springer


Diese Mock-Server-Systeme übernehmen die Rolle des Backends und stellen die entsprechenden Schnittstellen zur Verfügung, implementieren allerdings keinerlei Businesslogik. Damit Sie diese Art von Hilfssystem nicht selbst implementieren müssen, existiert ein Node.js-Modul mit dem Namen JSON Server [1]. Es wird, wie der Name andeutet, aus einer JSON-Datei gespeist. Allerdings kann JSON Server wesentlich mehr leisten, als nur ein rein lesendes Interface zu bieten: Sie können über die HTTP-Methoden POST, PUT, PATCH und DELETE auch schreibend auf den Server zugreifen.

Installation

JSON Server wird als Open-Source-Projekt unter der MIT-Lizenz auf GitHub verwaltet und ist als npm-Paket unter dem Namen json-server verfügbar. Mit dem Kommando npm install -D json-server installieren Sie das Paket als DevDependency in Ihrem Projekt. Seit der Version 5.2 von npm können Sie mit dem Kommando npx JSON Server direkt in Ihrem Projekt ausführen, ohne dass Sie das Paket global auf Ihrem System installieren müssen. Bevor Sie den Server starten können, müssen Sie zuvor eine Datenbankdatei erzeugen. Hier ein Beispiel für eine solche Datei:

{ "todo": [{ "id": 1,"title": "get up" },{ "id": 2, "title": "eat" }]}

Speichern Sie diese Datei unter dem Namen db.json, können Sie mit dem Kommando npx json-server db.json starten. Standardmäßig wird der Server an Port 3000 gebunden, sodass Sie ihn unter dem URL http://localhost:3000 ansprechen können. Für jede Eigenschaft der obersten Ebene der Datenbankdatei wird eine Route erzeugt. Für das Beispiel bedeutet das, dass Sie mit http://localhost:3000/todo die Liste der Todos abrufen können. Sollte dieser Port auf Ihrem System bereits belegt sein, können Sie mit der Option —port einen anderen Port wählen.

Lesender Zugriff

JSON Server bietet Ihnen eine Schnittstelle, wie Sie sie aus vielen REST-APIs kennen. Mit einem allgemeinen Pfad, wie hier /todo, erhalten Sie alle zugehörigen Datensätze. Sind Sie nur an einem bestimmten Objekt interessiert, können Sie es über die ID-Eigenschaft identifizieren und den Wert im Pfad angeben. Den Eintrag mit der ID 4 erhalten Sie über den URL http://localhost:3000/todo/4. Sie können zusätzlich zum Zugriff auf die einzelnen Datensätze auch die Liste aller Datensätze nach bestimmten Kriterien filtern. In diesem Fall kommt der Query-String im URL zum Einsatz. Um den zweiten Eintrag aus der Liste mit dem Titel eat abzufragen, verwenden Sie den folgenden URL: http://localhost:3000/todo?title=eat.

Um die Antwor...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang