Skip to content
damios edited this page May 10, 2018 · 16 revisions

Diese Seite liefert eine kurze Einführung in jpapi.

Was dabei herauskommen soll

Ein Programm, dass das am besten bewertete Spiel auswählt und den Titel zusammen mit der durchschnittlichen Bewertung ausgibt.

Was du brauchst

  • Maximal 10 Minuten Zeit
  • Einen Texteditor oder eine IDE
  • JDK 1.8 oder neuer

Setup

Um zu starten, benötigst Du die neuste Version von jpapi, die Du hier finden kannst, und jeweils die aktuellsten Versionen von gson, retrofit und dem retrofit-gson-Adapter. Retrofit benötigt dabei noch okhttp und okio. Am einfachsten ist es, wenn Du jpapi, gson, retrofit sowie den retrofit-Adapter von einem Build-Tool deiner Wahl herunterladen lässt. Das geht beispielsweise in Gradle folgendermaßen:

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    compile 'com.google.code.gson:gson:2.8.1'
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'
    compile 'com.github.crykn:jpapi:0.6.1'
}

Nachdem Du die Dateien heruntergeladen hast, musst Du sie zum Classpath deines Projekts hinzufügen. Ein Tutorial für den Prozess bei Eclipse findest Du hier (Auch das kann ein Build-Tool übernehmen).

Zufälliges Spiel auswählen

Für den Zugriff auf ein Spiel in jpapi ist die Project-Klasse von zentraler Bedeutung. Sie beinhaltet alle dafür verfügbaren Methoden:

  • Project.getAll(orderedBy)
  • Project.getRandom()
  • Project.getByProjectId(gameid)
  • Project.getByUserId(userid)

Alle Methoden können jeweils eine JsonSyntaxException und eine IOException schmeißen. IOExceptions weißen auf einen Fehler beim Lesen der Seite und JsonSyntaxExceptions auf einen internen Fehler beim Parsen der JSON-Elemente hin.

Für unsere Zwecke brauchen wir die getAll()-Methode. Als Argument müssen wir übergeben, in welcher Reihenfolge die Spiele sortiert sein sollen. Für uns relevant ist hier OrderedBy.RATING, also dass die Spiele nach ihrer Durchschnittsbewertung sortiert werden. Damit sieht unser Code bis jetzt so aus:

Project[] spiele = Project.getAll(OrderedBy.RATING);

Da wir uns nur für das am besten bewertete Spiel interessieren, brauchen wir das Spiel an erster Stelle:

spiele[0];

Zugriff auf die Informationen

Auf Informationen eines Spiels kann grundsätzlich nur über Methoden zugegriffen werden. Für den Titel und die durchschnittliche Bewertung klappt das folgendermaßen:

spiele[0].getName();
spiele[0].getRating();

Zusammenfassung

Abschließend hier noch der komplette Source Code:

public class GetStartedSample {

	public static void main(String... args) {
		Project[] spiele = null;
		try {
			spiele = Project.getAll(OrderedBy.RATING);
		} catch (JsonSyntaxException | IOException e) {
			System.out.println("Fehler beim Ausführen der Anfrage");
		}

		if (spiele != null) {
			System.out.println(spiele[0].getName());
			System.out.println(spiele[0].getRating());
		}
	}

}

Clone this wiki locally