Zum Hauptinhalt springen

Service

Mit Netuno können Sie Web Services erstellen und jede Art komplexer REST-APIs zur Datenintegration zwischen Systemen aufbauen.

Was ist ein Web Service?

Ein Web Service ermöglicht es Systemen, Informationen online auf standardisierte Weise auszutauschen. In Netuno wird jede Datei in server/services/ automatisch zu einem über HTTP erreichbaren Endpunkt.

Warum Web Services verwenden?​

Die Verwendung asynchroner Services bringt klare Vorteile für die Benutzererfahrung:

  • Schnelleres Laden: Der Server liefert die visuelle Struktur der Seite sofort aus, ohne auf die Verarbeitung aller Daten zu warten.
  • Dynamische Daten auf Abruf: Das Frontend fordert nur die benötigten Daten an, wenn sie benötigt werden.
  • Integration zwischen Systemen: Ein in Netuno erstellter Service kann von jeder externen Anwendung (Mobile, ein anderes Websystem usw.) konsumiert werden.
  • Bessere Benutzererfahrung: Der Benutzer muss nicht auf die vollständige Verarbeitung der Seite warten, bevor er etwas auf dem Bildschirm sieht.

Voraussetzungen​

Bevor Sie beginnen, stellen Sie sicher, dass:

  • Netuno installiert ist und lokal läuft.
  • Die Anwendung demo wie unter Anwendung erstellen beschrieben erstellt wurde.
  • Daten in Aufgaben vorhanden und mit Einträgen verknüpft sind (erforderlich, damit die Rückgabe nicht leer ist).

Code-Editor konfigurieren​

Um Services in Netuno zu erstellen und zu bearbeiten, verwenden Sie einen Code-Editor Ihrer Wahl. Wir empfehlen Visual Studio Code, da er kostenlos, leichtgewichtig und sehr intuitiv ist, aber jeder Editor, der JavaScript/Python/Groovy unterstützt, funktioniert normalerweise.

Demo-Anwendung öffnen​

  1. Öffnen Sie Visual Studio Code.
  2. Klicken Sie im linken Seitenbereich auf das Symbol Dateien.
  3. Wählen Sie Ordner öffnen (Datei > Ordner öffnen).
  4. Navigieren Sie zum Installationsordner von Netuno.
  5. Wählen Sie das Verzeichnis: apps/demo
  6. Klicken Sie auf Öffnen.

Die Ordnerstruktur der Anwendung demo wird im linken Bereich geladen.

Service erstellen​

Services werden auf der Serverseite verarbeitet. Um einen neuen Service zu erstellen:

  1. Erweitern Sie im Dateibereich die Struktur, bis Sie den Ordner server/services/ finden.
  2. Klicken Sie mit der rechten Maustaste auf den Ordner services.
  3. Wählen Sie Neue Datei New File.
  4. Benennen Sie die Datei entsprechend der Sprache, die Sie verwenden möchten:
  • server/services/mitarbeiter.js
server/services/mitarbeiter.js
/**
*** Wandelt die Abfrageergebnisse in eine JSON-Ausgabe um.
*/
const dbMitarbeiter = _db.query(`
SELECT DISTINCT
mitarbeiter.name, SUM(DATEDIFF(HOUR, eintrag.start, eintrag.ende)) AS total
FROM mitarbeiter INNER JOIN eintrag
ON mitarbeiter.id = eintrag.mitarbeiter_id
WHERE mitarbeiter.aktiv = true AND eintrag.aktiv = true
GROUP BY mitarbeiter.name
ORDER BY total ASC
`);

const liste = _val.list();

for (const dbMitarbeiterEintrag of dbMitarbeiter) {
liste.add(
_val.map()
.set("name", dbMitarbeiterEintrag.getString("name"))
.set("total", dbMitarbeiterEintrag.getInt("total"))
);
}

_out.json(liste);

Implementieren Sie den Service, indem Sie den folgenden Code zur erstellten Datei hinzufügen. Dieser Service fragt die Datenbank ab und gibt eine Liste von Mitarbeitern mit der Gesamtzahl der erfassten Stunden im JSON-Format zurück.

Den Code verstehen​

Objekt/MethodeBeschreibung
_db.query()Führt eine SQL-Abfrage aus und gibt eine Liste von Objekten im Schlüssel-Wert-Format (Spalte → Wert) zurück.
_val.list()Erstellt eine veränderbare Liste zum Sammeln der Ergebnisse.
_val.map()Erstellt ein Mapping-Objekt (Schlüssel-Wert) für jede Ergebniszeile.
_out.json()Serialisiert das Objekt nach JSON und sendet die Antwort auf HTTP-Anfragen.
Erforderliche Daten

Stellen Sie sicher, dass Daten in Aufgaben vorhanden und mit Einträgen verknüpft sind. Andernfalls gibt der Endpunkt eine leere Liste [] zurück.

Service ausführen und testen​

Wenn Netuno läuft, rufen Sie den Endpunkt im Browser auf:

Tipp zur Anzeige von JSON

Wir empfehlen Firefox, um Endpunkte direkt im Browser zu testen, da er die JSON-Antwort lesbar mit Syntaxhervorhebung formatiert und anzeigt. Alternativ können Sie Erweiterungen wie JSON Viewer in Chrome oder Tools wie Postman für fortgeschrittenere Tests verwenden.

Eine ähnliche JSON-Antwort wird erwartet:

[
{ "name": "Anna Schmidt", "total": 12 },
{ "name": "Karl Meier", "total": 28 },
{ "name": "Johannes Weber", "total": 45 }
]

Nächste Schritte​

Jetzt, da Ihr Service funktioniert, können Sie:

  • 📄 Oberfläche & Design — diesen Service in das Frontend der Anwendung integrieren.
  • 📚 Service-Bibliothek — die Objekte _db, _val, _out und weitere in Netuno verfügbare Objekte erkunden.
  • 🔗 Authentifizierung und Zugriffskontrolle zu Ihrem Service hinzufügen.