mit Java API arbeiten

runphp

Mitglied
Hallo Leute,

Ich wollte mich mit dem Thema API etwas vertraut machen und ein kleines Tutorial mit anschauen. Leider kapier ich nicht wie das ganze geht, da ich ein Token anfordern soll und da irgendwie was mit Javasciptcode steht. Vielleicht kann einer mir beim Einstiegt/Setup helfen. Hier der Link zum Video:

Mfg
 

M.L.

Top Contributor
Das ist Eclipse (?) mit via Maven heruntergeladenem Gson (Video ab 12:40 / 13:00 ), der API-Key und oder dessen Nutzung könnte langfristig monetarisiert werden. Der Java-Code an sich lässt sich danach via Auto-Vervollständigung reproduzieren.

Und etwas billiger könnten diese Tutorials sein: https://howtodoinjava.com/jersey-jax-rs-tutorials/ (spez. zu Gson)
 

mihe7

Top Contributor
@runphp Du bringst hier ein paar Dinge durcheinander.

Als API bezeichnet man die (Spezifikation einer) Programmierschnittstelle eines Systems. APIs gibt es viele.

Das Betriebssystem hat eine API, die Java Platform hat eine API, Office Pakete bieten eine API an usw. APIs können auch über das Netzwerk bzw. das Internet angeboten werden. Heutzutage erfolgt die Kommunikation oft mit Hilfe von JSON-Dokumenten, die über HTTP(S) ausgetauscht werden. Das ist aber keineswegs die einzige Möglichkeit: SOAP oder RPC wären beispielsweise ebenfalls möglich.

In dem Video geht es um eine REST(ful)-API, wobei man hier aufpassen muss: REST ist nicht immer REST, sondern oft nur eine API, die auf HTTPS+JSON fußt und dann einfach als REST-API bezeichnet wird, was streng genommen falsch/irreführend ist, weil REST einen Architekturstil bezeichnet, der bestimmte Anforderungen an die API stellt. Das aber nur nebenbei, denn für den Request macht es praktisch keinen Unterschied, ob die Architektur nun wirklich RESTful ist oder nicht.

Wie also wird eine "REST-API" angesprochen? Ganz einfach mit Hilfe eines HTTP-Requests. Man sendet einen Request an den Server und erhält eine entsprechende Antwort. That's it.

HTTP kennt verschiedene Methoden (auch "Verben" genannt), wie GET, POST, PUT, DELETE usw. die in den APIs gerne verwendet werden, um zu unterscheiden, was mit den im Request angesprochenen Ressourcen geschehen soll.

Der Browser führt beim Öffnen einer URL z. B. einfach einen GET-Request durch. Beispielsweise kannst Du https://random-data-api.com/api/v2/beers?size=2 aufrufen und erhältst ein JSON-Dokument, bestehend aus einem JSON-Array mit zwei JSON-Objekten, zurück. Dokumentation der API unter https://random-data-api.com/documentation

Alles, was Du tun musst, ist in der Programmiersprache Deiner Wahl einen GET-Request abzusetzen. Zum Beispiel kannst Du in der JShell schreiben:
Java:
import java.net.http.*;
URI uri = URI.create("https://random-data-api.com/api/v2/beers?size=2");
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(uri).GET().build();
InputStream is = client.send(request, HttpResponse.BodyHandlers.ofInputStream()).body();
Jetzt hast kannst Du die Antwort aus dem InputStream lesen, z. B. um das darin enthaltene JSON zu parsen. Dafür verwendet man dann eine Lib wie Gson oder org.json oder json-simple oder ...

Zur Ausgabe auf dem Bildschirm reicht aber auch erstmal ein
Java:
is.transferTo(System.out);

Natürlich sind die APIs oft nicht so trivial wie die eben gezeigte. In der Regel erfordern sie Authentisierung und auch die Verwendung der API kann ziemlich komplex sein. In den Fällen gibts aber oft Bibliotheken, die einem das Leben erleichtern.
 

M.L.

Top Contributor
Teil II: zum Thema API-Design gibt es demnächst ein Video bei Youtube, Kanal "thenativeweb", "API-Design: Das einzige Video, das du brauchst // deutsch"
-> youtube.com/watch?v=SexQcBUp3DM (den Kanal kann man auch für Informationen zum Thema (Rest-)API verwenden)
 

Neumi5694

Top Contributor
Nun die Frage aller Fragen: Was war zuerst da, die API oder das Programm? ;)
Das ist sogar einfach zu beantworten. Ohne zu wissen, welche Befehle ein Rechenkern oder auch nur eine Schaltung hat, kann man auch nicht programmieren. Man kann keine Boolean-Berechnung machen, ohne zu wissen, welche Operationen es gibt. Und Boolean ist der Grundbaustein aller Operationen, deshalb würde ich sagen die Definition, also API, kam zuerst.
 

mihe7

Top Contributor
Teil II: zum Thema API-Design gibt es demnächst ein Video bei Youtube, Kanal "thenativeweb", "API-Design: Das einzige Video, das du brauchst // deutsch"
-> youtube.com/watch?v=SexQcBUp3DM (den Kanal kann man auch für Informationen zum Thema (Rest-)API verwenden)
Hm... das ist ein Livestream mit Zwischenfragen, von denen gefühlt 95 % rein gar nichts mit der API zu tun haben. Die Informationsdichte des Videos ist entsprechend niedrig, da wären Links zu den interessanten Teilen im Video nicht verkehrt.
 

mihe7

Top Contributor
(offtopic) es ist aber auch ein (evtl. (un)geplantes) Beispiel für "mit Leuten reden" oder "people factor" um Software (z.B. als API) zu entwickeln
Ja, für "mit Leuten reden" ist das tatsächlich ein Beispiel. Ich will nicht ausschließen, dass das Video den Leuten gefällt, und es ist von mir auch nicht bös gemeint, aber mir persönlich ist das einfach viel zu langatmig.

Inhaltlich gehts los bei
los und bis 10:37 ist auch ok, das sind vier Minuten.

Dann drei Minuten (bis 13:33) Erklärung, warum man welches Beispiel nicht genommen hat, um dann "Bibliotheksverwaltung" einzuwerfen und auszuschweifen, dass man als Kind in einer Bibliothek Bücher ausgeliehen hat und das doch für ihn das Interesse an Bibliotheken durch das Internet zurückgegangen sei aber doch grundsätzlich jeder wissen sollte, wie so eine Bibliothek funktioniert. Aha.

Ab 14:13 werden eine halbe Minute lang Chatnachrichten vorgelesen. Dann wieder "Bibliotheksverwaltung" - ein Satz! Bevor erstmal wieder auf die Chatnachrichten und dort insbesondere auf den Eistee eingegangen wird. Jetzt muss ein Glas gezeigt werden und ein Strohhalm, der - ganz wichtig - ein Metallhalm ist... Danach Kanalwerbung, gut, muss auch sein.

Ab 17:17
gehts dann endlich los, jetzt aber wirklich oder? Nöööö.... Erst muss man sich eine halbe Minute lang erklären lassen, dass man einen leeren Editor offen hat und man eine README.MD bearbeitet.

Also weiter zu 17:47. Whoa, 10:37 bis 17:47, das sind 10 Minuten mit absoluter Null-Info.

Die nächsten Minuten sind dann gut, wenngleich mir da auch zu viel Zwischengeplänkel ist (Wie viele Bücher hat wohl eine Bibliiothek? Sind "Die drei ???" spannend? Oder die Zwischenfrage eines Users wie man den Co-Pilot aktiviert usw.)

Bei 35:46 gehts dann an den Code... Meint man, denn erstmal gehts um Go. Dann ab 39:51 (also gute 4 Minuten später), wird dann sogar echter Code geschrieben. Natürlich wieder mit Infos zu Go... Um 53:46, also knapp 14 Minuten später, hat man dann auch schon einen Ping-Service.

Dann Refactoring inkl. Go-Erklärungen, bis 1:12:51, dann heißt es "Wir hatten gesagt: das erste, was wir mal machen müssten, ist wir wollen als Bibliothek überhaupt mal neue Bücher hinzufügen". Jetzt gehts endlich mal wieder um die API. Aber natürlich nicht, ohne Ausschweifungen z. B. darüber, was im Schach ein Halbzug ist und dass es eine Lücke in den Schachregeln gab usw. über sich ergehen lassen zu müssen.

Da habe ich es dann aufgegeben. Im Real-Life gibts ja auch Laber-Meetings - wenn auch nicht ganz so extrem - da verabschiede ich mich regelmäßig, wenn es geht und sich das nicht in eine andere Richtung lenken lässt :) Das Schlimme ist ja, dass sich selbst fachlich noch stundenlang diskutieren lässt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G in Java mit Schnittstellen arbeiten Java Basics - Anfänger-Themen 5
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
S Substring in java Java Basics - Anfänger-Themen 3
Z Operatoren Java Applikation Java Basics - Anfänger-Themen 8
Tw1Z Erste Schritte Sort in java Java Basics - Anfänger-Themen 2
sasnitzer java augensumme von zwei würfeln ist 1 Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben