Ï Guerilla-Coding :: API Session I

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 ist
      • public class MeineKlasse {} -> kein Semicolon, da wir nicht sagen “Mach was!”, sondern wir definieren nur ein Konstrukt, in dem wir Dinge tun wollen