API Session I
IntelliJ und Demo App
- IntelliJ öffnen
- Tips schließen
- Demo Projekt öffnen
- Open -> demo folder
- src -> main -> java -> DemoApplication
- DemoApplication = Klasse
Klasse:
In einer Klasse sind Methoden und Eigenschaften eines Objektes definiert
- Eine Art Blueprint / eine Vorlage um anschließend beliebig viele Objekte zu erzeugen
Beispiel:
- Bauplan = Klasse
- Haus = Objekt
- Line 7 / 9: grüne Dreiecke (Play Buttons) zum Starten der App
- App starten über diese Play Buttons
- Oben rechts: weitere Buttons, hier auch nochmal der grüne Start Button, sowie der rote Stop-Button
Erster eigener Code
- Wir und der Computer lesen Code wie ein Buch:
- Von Links nach Rechts, von Oben nach Unten
- Codeklammern:
{}für Codeblöcke()für Parameter (Variablen, die in eine Methode reingegeben werden)- Über Klammern hovern -> Gegenstück finden
- In Zeile 10:
- Am Ende der Zeile (hinter Semicolon) enter drücken
- In Zeile 11:
System.out.println("This is my super fancy code");
- Play Button oben rechts drücken
- Unten öffnet sich die Konsole
Konsole
Das Fenster, worüber die Anwendung Texte schreiben kann, in der Regel genutzt um bestimmte Events / technische Sachen zu loggen Beispiele:
- (tomcat started) -> localhost und Port
- Variablen:
String myText = "My fancy text in a variable";System.out.println(myText);
- Variablentyp:
String-> bedeutet das ist ein Text myText-> Variablenbezeichnung zur Verwendung im Code
API
API
= Application Programming Interface
Adresse, über die bestimmte Informationen abrufbar sind
Ein Satz von Befehlen, Funktionen, Objekten, die Programmierer verwenden können, um eine Software zu erstellen, oder mit externen System zu interagieren
- Browser öffnen
- google.com/search -> das ist ein Endpunkt, hier der Endpunkt der für die Suche in Google zuständig ist
- google.com/maps -> der Endpunkt, der für Maps zuständig ist
Server vs Client
- Server immer sendender Part
- Beispiel: google.com
- Hat bestimmte Informationen
- Client immer empfangener Part
- Beispiel: unser Browser
- Fragt Informationen an
Erster eigener Endpunkt
- links in IntteliJ bei com.example.demo Rechtsklick -> new -> Java Class -> MyAPI
- Klassen werden immer groß geschrieben, Methoden immer klein!
package com.example.demo;
public class MyAPI {
} - Wenn man auf die geschweiften Klammern klickt, leuchtet immer das Gegenstück gelb
- Hilft dabei, die richtigen Klammern zu finden
package com.example.demo;
@RestController
public class MyAPI {
@RequestMapping(path="/myAPI")
String myFancyFunction(){
return "Juhu, meine erste API!";
}
} - Play Button oben rechts (Anwendung starten)
- Frage: Was müssen wir machen, um die Antwort der API ausgespuckt zu bekommen?
- Browser öffnen
- localhost:8080
- localhost = unser Computer
- 8080 = der Port, den wir aus der Konsole bekommen haben
- localhost:8080/myAPI
- myAPI = der Endpunkt, muss identisch wie im Code sein
- Enter -> API wird ausgegeben
localhost
localhost ist der eigene Computer - also immer das Gerät, auf dem man gerade arbeitet. Dort können bestimmte netzwerkfähige Anwendungen abgerufen werden, bzw. auch untereinander kommunizieren
Port
Wie “Arme” an denen der localhost bestimmte APIs anbieten kann
- Eine API braucht immer einen Port
Kommentare
//= Kommentar, Java ignoriert alles, was dahinter geschrieben wird- Wird genutzt zur Beschreibung / Dokumentation von Code
Endpunkt mit Parametern
- Browser öffnen
- google.com/search?q=banane -> Übergabe von Parametern an Google (hier mit q (question) = unser Suchbegriff)
package com.example.demo;
@RestController
public class MyAPI {
@RequestMapping(path="/myAPI")
String myFancyFunction(){
return "Juhu, meine erste API!";
}
@RequestMapping(path="/mySuperAPI")
String superCoolFunction(@RequestParam("name") String name){
return "Hallo " + name;
}
} - Erklärung:
- String superCoolFunction = Rückgabetyp (hier: String = ein Text) und Methodenname (hier: superCoolFunction)
- @RequestParam(“name”) = So soll mein parameter im Endpunkt heißen (Beispiel google: “q”)
- String name = Typ und Bezeichnung des Parameters zur Verwendung im Code
- Neu starten
- Neuen Endpunkt aufrufen
- auf 400er Fehlercode eingehen (400 = Bad Request = Ich habe meine Anfrage falsch gestellt)
- Parameter mit übergeben:
- localhost:8080/mySuperAPI?name=Melanie
FAQ:
- Wann kommt ein Semikolon?
- Ein Semikolon kommt nach jedem Statement - also immer, wenn man sagt: Mach etwas! Merk dir etwas!
- Beispiel:
System.out.println("Tu etwas!");-> Semikolon, da ein “mach was!” enthalten istpublic class MeineKlasse {}-> kein Semicolon, da wir nicht sagen “Mach was!”, sondern wir definieren nur ein Konstrukt, in dem wir Dinge tun wollen