-
Notifications
You must be signed in to change notification settings - Fork 2
Tag 10: HTTP, Spring
HTTP steht für Hypertext Transfer Protocol. Mithilfe dieses Protokolls lassen sich Daten in einem Netzwerk übertragen. HTTP funktioniert nach dem sogenannten Client-Server-Prinzip. Die Daten werden zwischen einem Webserver und einem Webbrowser (auch Client genannt) übertragen.
HTTP hat unter anderem folgende Methoden: • GET (Abfrage) • POST (Hinzufügen) • PUT (Hinzufügen/Ersetzen) • PATCH (Ändern) • DELETE (Löschen)
Der Begriff URL ist ein Akronym der Bezeichnung "Uniform Resource Locator". Damit wird eine Adresse bezeichnet, die einen Pfad zu einer bestimmten Datei auf einem Server angibt. Auf diese Quelle kann über ein Netzwerkprotokoll wie http, https oder ftp zugegriffen werden.
Beispiel:

Man kann über HTTP Daten senden und empfangen. Ein GET Request hat keinen Body. Der Response aber schon. Der Header übermittelt wichtige Parameter und Argumente für die Übertragung von Dateien, z.B. gewünschte Sprache oder andere Informationen.
JSON ist ein Datenformat in einer einfachen lesbaren Textform für den Datenaustausch zwischen Anwendungen.

Mit Postman kann man unter anderem APIs testen. APIs sind Programmierschnittstellen, mit denen man mit externen Systemen interagieren kann. Anhand der Rick und Morty API kann man Abfragen testen. Für die Abfrage brauchen wir den entsprechenden Link.
Wir können links neben der URL unsere HTTP Methode auswählen und darunter die Parameter eingeben:

Ist ein Quelloffenes Framework für die Java Plattform seit 2002. Damit soll die Entwicklung einfacher gemacht werden. Bietet viele Bibliotheken von Modulen an und mehr.
Auf der Seite https://start.spring.io können wir neue Projekte aufsetzen. In Intellij wählen wir unter Generators dann Spring Initializr und wählen dann als Type Maven aus:

Als nächstes setzen wir unter Dependencies -> Web -> Spring Web einen Haken und erstellen das neue Web-Projekt.
Spring sorgt dafür, dass das Rad nicht jedes Mal neu erfunden werden muss und hilft uns dabei das Leben zu erleichtern. Zu sehen ist, dass eine ausführbare Web-Applikation mit der Klasse DemoApplication erstellt wurde. Annotationen haben wir bereits bei JUnit Tests kennengelernt. Durch die Markierung @ wie bspw. @SpringBootApplication, @GetMapping oder @PathVariable erkennt das Programm "Anmerkungen" an Klassen, Methoden oder Variablen. Spring macht "magisches" intelligenten Verhalten mit Annotationen möglich.
Um den Rahmen dieses Protokolls nicht zu sprengen, wird nicht auf die Begriffe REST und REST-API eingegangen.
Wir erstellen eine neue Klasse TestController mit den Annotationen @RestController sowie @RequestMapping. Anhand dieser Klasse können wir REST Endpunkte bereitstellen. Der String ("/test") rechts neben der Annotation @RequestMapping gibt den Pfad an (http://localhost:8080/test). Die Annotation @GetMapping stellt Get REST Endpunkte bereit und ruft in der Regel eine Service-Methode auf, wie bspw. die getGreetings()-Methode unten. Auf die Get Anfrage erhalten wir in der Regel ein JSON Objekt zurück.
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/de")
public String getGreetings() {
return "Hello World!";
}
}
Wir können dann über den Localhost:8080 und dem entsprechenden Mapping das Programm sehen:
