jpapi 28.07.2015 - 14:20 0

Heute möchte ich etwas zu meinem neusten Projekt, einem Java-Wrapper für die Pewn-API schreiben. Den Wrapper habe ich im Zuge eines anderen Projekts (das vielleicht auch irgendwann einmal auf Pewn landet) entwickelt.

jpapi ist open source und der Quellcode kann auf github eingesehen werden: github.com

 

Funktionsweise

jpapi sendet die Anfragen an die offizielle Pewn API und erhält die Antwort im JSON Format. Die Antwort wird dann mit gson zu den entsprechenden Java Objekten geparst.

 

Beispiel Code

Project project = Project.getRandom();
User author = project.author;
System.out.println(author.username);

project = Project.getAll(OrderedBy.RATING)[0];
​System.out.println(project.images[0].fileName);

Ausprobieren

Um die Bibliothek auszuprobieren, müsst ihr einfach die jar-Dateien von jpapi und von gson zum Classpath eures Java-Projekts hinzufügen.

Die Dokumentation von japi kann hier eingesehen werden.

 

Ich bin mir momentan unsicher, ob ich jpapi auch noch als Projekt auf Pewn stelle, da ich nicht weiß, ob die Projekte ausschließlich Spielen vorbehalten sein sollen, oder auch für Pewn-bezogene Projekte zur Verfügung stehen.

Ich würde mich freuen, wenn jemand die Bibliothek einmal ausprobieren könnte und seine Meinung dazu hier oder auf github schreiben könnte. Sollte jemand an dem Projekt mitarbeiten wollen, freue ich mich auch gerne über Pull-Requests 

 

#jpapi #pewnapi


Aktualisiert: 23.03.2016 - 17:24
Grund:
31.07.2015 - 08:52
krazun
In den letzten 60 min online
krazun
Rang 17
Administrator

Projekte: 0
Designs: 2
Blogs: 3
Aktivität:
Sehr aktiv

Sehr cool! Sieht super aus der Wrapper, macht das ganze richtig elegant und leicht nutzbar 

Und ich würde auf den Wrapper eher direkt auf der API Seite aufmerksam machen und auf die Github Seite verlinken. Da werden die Leute die vor haben die API zu nutzen wahrscheinlich am ehesten dannach suchen  Werde da demnächst mal einen entsprechenden Hinweis einbauen.

Und es kann sein das sich auch vorhandene Methoden noch etwas ändern werden, nur so als Vorwarnung ;)

Wenn die API aber relativ komplett und stabil ist sag ich bescheid, ab dann wird sich nix gravierendes an bestehenden Methoden mehr ändern. Falls doch wird das unter V2 gemacht dann, damit alle bestehenden Tools/Seiten die V1 nutzen weiter laufen.

krazun
In den letzten 60 min online
krazun
Rang 17
Administrator

Projekte: 0
Designs: 2
Blogs: 3
Aktivität:
Sehr aktiv
Administrator
31.07.2015 - 13:55
Phosphenius
In den letzten 60 min online
Phosphenius
Rang 7

Projekte: 1
Designs: 0
Blogs: 1
Aktivität:
Sehr aktiv

Geniale Sache!

Damit kann man bestimmt sehr schön Desktop- und Android-Apps für Pewn entwickeln.

Kann jpapi auch direkt Spiele downloaden bzw. im Browser öffnen? Eine Liste mit Features wäre vllt. nicht schlecht.

Phosphenius
In den letzten 60 min online
Phosphenius
Rang 7

Projekte: 1
Designs: 0
Blogs: 1
Aktivität:
Sehr aktiv
02.08.2015 - 15:24
Ersteller
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv

@krazun Danke! 

@Phosphenius jpapi stellt eine Java-Schnittstelle für alle Funktionen der Pewn API dar. Funktionen wie das Downloaden von Spielen sind zwar nicht Bestandteil der API, waren aber der Grund warum ich mit dem Ganzen angefangen habe. Mein vorangegangenes Projekt war ein Spiele-Updater, der auf einen einfachen Weg zur Kommunikation mit Pewn angewiesen war.

Ersteller
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv
Administrator
03.08.2015 - 21:20
Husi012
In den letzten 60 min online
Husi012
Rang 4

Projekte: 1
Designs: 0
Blogs: 2
Aktivität:
Inaktiv

Hi,

Ich hab mal die Dokumentation durchgestöbert. Ich fang grad mit Java an. Ich konnte jetzt leider nicht so ganz viel mit dem Anfangen. Eine Funktion da jetzt zu finden ist schon schwer... Würde mich auch freuen, wenn du vorne eine ganze Liste machst, in der Alle Funktionen aufgelistet sind.

 

Da ich jetzt grad mit Java anfange und etwas Erfahrung sammeln möchte, hab ich mal aus Spaß selber eine Schnittstelle erstellt. Klappt einfacher als ich gedacht habe. Bis jetzt kann ich:

  1. Downloadlink von einem bestimmten Spiel bekommen
  2. Jeden Namen von einem Spiel durchnummeriert finden. Also vom 1. Spiel den Namen herausfinden vom 2. usw.
  3. Jedes Link von einem Spiel durchnummeriert finden. Also vom 1. Spiel den Link herausfinden vom 2. usw.

Kann das dein Jpapi auch? Wäre cool. Ich hoffe du machst daran weiter  

 

Ps: Ich hoffe du findest es nicht schlimm, dass ich meine Funktionen poste  Ansonsten entferne ich die natürlich.

Husi012
In den letzten 60 min online
Husi012
Rang 4

Projekte: 1
Designs: 0
Blogs: 2
Aktivität:
Inaktiv
04.08.2015 - 11:22
Ersteller
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv

Hallo Husi012,

die Dokumentation richtet sich ganz nach dem, was in Java üblich ist. Das Javadoc-Tool wandelt die Komentare im Code in die mehr oder minder übersichtliche Webseite um. Wenn du einen Einstiegspunkt in jpapi suchst, würde ich mit der Project-Klasse anfangen.

Die von dir genannten Dinge sind mit jpapi natürlich auch möglich:

project.downloadWindows; //Downloadlink
Project.getAll(OrderedBy.CREATION_DATE)[0].title; //Name des ersten Spiels
Project.getAll(OrderedBy.CREATION_DATE)[0].downloadWindows; //Downloadlink des ersten Spiels

Nein, ich habe kein Problem damit, dass du die Funktionen hier postest   Kannst sie ruhig stehen lassen.

Ersteller
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv
Administrator
04.08.2015 - 12:18
Husi012
In den letzten 60 min online
Husi012
Rang 4

Projekte: 1
Designs: 0
Blogs: 2
Aktivität:
Inaktiv

Ah cool!

Muss ich unbedingt mal ausprobieren. Sobald ich es irgendwie hin bekomme bei Jaa die Rechte zum schreiben bekomme, mach ich mir zum Spaß mal ein Updater mit deiner jpapi 

Husi012
In den letzten 60 min online
Husi012
Rang 4

Projekte: 1
Designs: 0
Blogs: 2
Aktivität:
Inaktiv
04.08.2015 - 19:28
Phosphenius
In den letzten 60 min online
Phosphenius
Rang 7

Projekte: 1
Designs: 0
Blogs: 1
Aktivität:
Sehr aktiv

@damios: Ich würde dir noch empfehlen, eine Opensource-Lizenz hinzuzufügen. Für viele Entwickler ist die Lizenz einer Lib ein wichtiger (Entscheidungs-)Faktor. 

Phosphenius
In den letzten 60 min online
Phosphenius
Rang 7

Projekte: 1
Designs: 0
Blogs: 1
Aktivität:
Sehr aktiv
05.08.2015 - 12:04
Ersteller
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv

Ich wollte mich nach den ersten paar Commits um die Lizenz zu kümmern, habe das dann aber wohl komplett vergessen... Danke fürs Erinnern! japi steht jetzt unter der MIT Lizenz zur Verfügung und sollte damit so ziemlich alles erlauben.

Ersteller
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv
Administrator
05.08.2015 - 16:36
Phosphenius
In den letzten 60 min online
Phosphenius
Rang 7

Projekte: 1
Designs: 0
Blogs: 1
Aktivität:
Sehr aktiv

MIT ist imo einer der besten OSS Lizenzen. Hatte schon bedenken gehabt, du könntest dich für die GPL entscheiden.

Phosphenius
In den letzten 60 min online
Phosphenius
Rang 7

Projekte: 1
Designs: 0
Blogs: 1
Aktivität:
Sehr aktiv
05.08.2015 - 17:43
Ersteller
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv

Dass ich die GPL nicht benutzen werde, stand sehr schnell fest   Die zwingt ja alle, die die Bibliothek verwenden, auch die GPL zu verwenden und das war mir dann ein bisschen zu extrem   Aber ich habe lange überlegt, ob ich nicht die LGPL oder die Apache Lizenz verwende. Mit der LGPL Lizenz wären halt alle Änderungen an der Bibliothek automatisch wieder unter der LGPL verfügbar gewesen.

Ersteller
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv
Administrator
Kommentar als Gast hinzufügen