Top Menu

Jump to content
Home
    • Projects
    • Work packages
    • News
    • Getting started
    • Introduction video
      Welcome to OpenProject
      Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu.

    • Help and support
    • Upgrade to Enterprise edition
    • User guides
    • Videos
    • Shortcuts
    • Community forum
    • Professional support

    • Additional resources
    • Data privacy and security policy
    • Digital accessibility (DE)
    • OpenProject website
    • Security alerts / Newsletter
    • OpenProject blog
    • Release notes
    • Report a bug
    • Development roadmap
    • Add and edit translations
    • API documentation
  • Sign in
      Create a new account
      Forgot your password?

Side Menu

  • Overview
  • News
  • Forums
  • Wiki
    • Table of contents
      • Expanded. Click to collapseCollapsed. Click to showWiki
        • Expanded. Click to collapseCollapsed. Click to showBeispielprojekte
          • Hierarchy leafFlappy Box2D
          • Hierarchy leafFlappy Improved
          • Hierarchy leafHighscore Hibernate
          • Hierarchy leafHighscore Webservice + Anbindung mit Retrofit
        • Expanded. Click to collapseCollapsed. Click to showEntwicklung mit Java
          • Hierarchy leaf001) Grundlagen - Entwicklungsumgebung
          • Hierarchy leaf002) Erstes Programm
          • Hierarchy leaf003) Variablen und Datentypen
          • Expanded. Click to collapseCollapsed. Click to show004) Schleifen
            • Hierarchy leaf1) for - Zählschleife
            • Hierarchy leaf2) while
            • Hierarchy leaf3) do while
            • Hierarchy leaf4) for each
          • Hierarchy leaf005) Arrays
          • Hierarchy leaf006) Methoden
          • Expanded. Click to collapseCollapsed. Click to show007) Objektorientierte Programmierung
            • Hierarchy leaf001) Klasse
            • Hierarchy leaf002) Vererbung und Darstellung von Klassen in UML
            • Hierarchy leaf003) Abstrakte Klasse
            • Hierarchy leaf004) Design patterns
          • Expanded. Click to collapseCollapsed. Click to show008) Webservices
            • Hierarchy leaf01) REST - Representational State Transfer
            • Hierarchy leaf02) Minimaler Webservice
            • Hierarchy leaf03) Joke Webservice
            • Hierarchy leaf04) Highscore Service
        • Expanded. Click to collapseCollapsed. Click to showMatura - Vorbereitung
          • Hierarchy leaf01) Projektmanagement
          • Hierarchy leaf02) Objektorientierte Programmierung
          • Hierarchy leaf03) Modellierung und UML
          • Expanded. Click to collapseCollapsed. Click to show04) Design Patterns
            • Hierarchy leaf00) Generelle Konzepte
            • Hierarchy leafFactory(-Method) Pattern
            • Hierarchy leafObserver Pattern
            • Hierarchy leafSingleton Pattern
            • Hierarchy leafStrategy Pattern
          • Hierarchy leaf05) Algorithmen und Datenstrukturen
          • Hierarchy leaf06) Webtechnologien
          • Hierarchy leaf07) Webservices
          • Hierarchy leaf08) Softwarequalitätsmanagement
          • Hierarchy leaf09) Softwareentwicklungsmodelle
        • Expanded. Click to collapseCollapsed. Click to showProjekt Rahmenbedingungen
          • Expanded. Click to collapseCollapsed. Click to showRetrospektive
            • Hierarchy leafRetro - [Name Schüler_in]
        • Hierarchy leafReact Native
        • Expanded. Click to collapseCollapsed. Click to showÜbungen
          • Hierarchy leaf1) Basic
          • Expanded. Click to collapseCollapsed. Click to show2) Basic
            • Hierarchy leaf001) Methode ohne Rückabewert mit Parametern
            • Hierarchy leaf002) Methode mit Parametern und Rückgabewert
            • Hierarchy leaf003) Text umdrehen
            • Hierarchy leaf004) Text umdrehen 2
            • Hierarchy leaf005) Kommandozeile
            • Hierarchy leaf006) Kommandozeile 2
            • Hierarchy leaf007) Vererbung - Geometry
            • Hierarchy leaf008) File from String
            • Hierarchy leaf009) Rekursion - Summe
            • Hierarchy leaf010) Rekursion - File
          • Expanded. Click to collapseCollapsed. Click to showDatenstrukturen
            • Hierarchy leaf011) Binärbaum
            • Hierarchy leaf012) Binärbaum - Generics
            • Hierarchy leaf013) AVL - Tree
            • Hierarchy leaf014) Linked List - Einfach verkettete Liste
            • Hierarchy leaf015) Graph
            • Hierarchy leaf016) Dijkstras shortest path first
          • Expanded. Click to collapseCollapsed. Click to showJava - Kara
            • Hierarchy leafKara lernt schreiben
You are here:
  • Wiki
  • Entwicklung mit Java
  • 008) Webservices
  • 02) Minimaler Webservice

Content

02) Minimaler Webservice

  • More
    • Print
    • Table of contents

Was ist Node.js

Node.js ist eine Laufzeitumgebung für in JavaScript geschriebene Programme und verwendet Chrome's V8 JavaScript engine.

Vorbereitung

  • Node.js installieren: https://nodejs.org/en/download/
  • Visual Studio code installieren: https://code.visualstudio.com/

Erster Webservice (Minimalbeispiel)

Im folgenden wird ein minimal node.js Webservice mit Express erstellt.

git bash

#Ordner für Projekt erstellen
mkdir samplewebservice
#In Ordner wechseln
cd samplewebservice
#Gitignore file herunterladen
curl https://raw.githubusercontent.com/nodejs/node/master/.gitignore > .gitignore
#Project initialisieren (nach bedarf eigene Einstellungen vornehmen, ansonsten alles abnicken)
npm init
#Express framework installieren
npm install express

Öffne nun Visual Studio Code und öffne den erstellten ordner.

Erstelle nun die Datei app.js mit folgendem Inhalt:

var express = require('express');
var app = express();

//Erste route -> http://localhost:3000/
app.get('/', function (req, res) {
  res.send('Hello World!');
});

//Startet den Server und hört auf Port 3000
app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

Server starten:

node app.js

Server verwenden

  • Browser: http://localhost:3000
  • git-bash: curl http://localhost:3000

Http Protocoll

Das Hypertext Transfer Protocol (HTTP, englisch für Hypertext-Übertragungsprotokoll) ist ein zustandsloses Protokoll zur Übertragung von Daten auf der Anwendungsschicht über ein Rechnernetz. Es wird hauptsächlich eingesetzt, um Webseiten (Hypertext-Dokumente) aus dem World Wide Web (WWW) in einen Webbrowser zu laden.

https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol

Aufbau eines Http requests

[METHODE] [ROUTE] [HTTP_PROTOKOLL_VERSION]
Host: [HOSTNAME]
[HEADER_KEY_1]: [HEADER_VALUE_1]
[HEADER_KEY_2]: [HEADER_VALUE_2]
[HEADER_KEY_3]: [HEADER_VALUE_3]

[BODY optional]

Http Request Beispiel

Möglicherweise nicht in git-bash verfügbar

  • http: telnet [hostname]
  • https: openssl s_client -connect [hostname]:https
GET / HTTP/1.1
Host: www.vol.at

Wichtige Http Methoden

  • GET (Etwas abholen - Kein Request Body)
  • DELETE (Etwas löschen - Kein Request Body)
  • PUT (Etwas ändern - mit Request Body)
  • POST (Etwas hinzufügen - mit Request Body)

Dateiformat Json

  • Javascript object notation
  • Wird zur Datenübertragung mit Webservices verwendet
  • Besteht aus Key/Value Paaren und Arrays

Beispiel

Witz

{ text: "Das ist ein mieser Witz", author: "Alfons", approved: true, ranking: 1.0 }

Witz Array

[
    { text: "Das ist ein mieser Witz", author: "Alfons", approved: true, ranking: 1.0 },
    { text: "Das ist ein mieser Witz2", author: "Alfons", approved: true, ranking: 1.0 },
    { text: "Das ist ein mieser Witz3", author: "Alfons", approved: true, ranking: 1.0 },
    { text: "Das ist ein mieser Witz4", author: "Alfons", approved: true, ranking: 1.0 }
]
Loading...