Willkommen, Gast
  • Seite:
  • 1
  • 2

THEMA: Die Wiedergeburt der Proxer-API!!

Die Wiedergeburt der Proxer-API!! 9 Monate 2 Wochen her #757406

  • Nihongasuki
  • Nihongasukis Avatar
  • Online
  • Techniker
  • &Manga Mod (Wikinger sind männlicher!)
  • Beiträge: 184
  • Dank erhalten: 525
Guten Tag lieber informatikbegeisterter Teil Proxers,

wie jeder von euch schon gemerkt haben dürfte, wurde die API komplett neu aufgesetzt. Diesmal wollten wir es richtig machen und nicht einfach nur die bereits vorhanden internen Schnittstellen veröffentlichen und so tun, als sei das eine gescheite API *hust*.

Deswegen haben wir nun ein komplett eigenes API-System gebaut, das als Wrapper für die internen Funktionen dient. Das hat den Vorteil, dass wir die API-Schnittstellen fast beliebig anpassen können, ohne auf Konflikte mit anderen Teilen Proxers achten zu müssen. Außerdem ist so die Verwaltung der API weitaus leichter.

Momentan ist die API noch nicht komplett fertig. Ein paar Schnittstellen und Klassen fehlen noch. Da jedoch die bereits implementierten schon viel mehr sind, als die alte API jemals bieten konnte, möchten wir bereits jetzt die neue freigeben. Wir werden sobald wie möglich die noch fehlenden Schnittstellen einbauen sowie auf Schnittstellen-Wünsche eurerseits reagieren.

Übrigens, wie viele hier schon wissen, gibt es eine „Mailinglist“ für die API, wo alle Neuerungen (auch dieser Thread) gepostet werden. Wer zu dieser Mailinglist hinzugefügt werden will, sollte eine PN an genesis schreiben.

So, jetzt aber zum interessanten Thema:


Zugriff auf die neue API

Weitere Informationen [ Zum Anzeigen klicken ]


Ok, wie bekommt man denn nun so einen Key?

Weitere Informationen [ Zum Anzeigen klicken ]


Login

Weitere Informationen [ Zum Anzeigen klicken ]


Proxer-Stream

Weitere Informationen [ Zum Anzeigen klicken ]



Das wars auch schon, viel Spaß mit der neuen API xD

Fühlt euch aufgefordert, jede Art Gedanken, Anregungen oder Wunschträume, die ihr in Bezug auf die API haben mögt, hier in diesem Thread zu posten.

MfG
Nihongasuki
Letzte Änderung: 9 Monate 1 Woche her von Nihongasuki.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 9 Monate 1 Woche her #758001

  • Lookii
  • Lookiis Avatar
  • Offline
  • Nichtskönner
  • Beiträge: 3
Finally it's here, danke!

Eine Frage hab ich aber, gibt es eine Schnittstelle, um an die ID eines Animes/Mangas/Users/etc. zu kommen bzw. zu suchen? In der Dokumentation habe ich nichts derartiges finden können
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 9 Monate 1 Woche her #758018

  • Nihongasuki
  • Nihongasukis Avatar
  • Online
  • Techniker
  • &Manga Mod (Wikinger sind männlicher!)
  • Beiträge: 184
  • Dank erhalten: 525
Wie bereits erwähnt fehlen ein paar Klassen und Schnittstellen noch, inklusiver der Klasse "list", die Anime/Mangalisten sowie eine Suchfunktion bereitstellen wird.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 9 Monate 1 Woche her #758251

  • devildesire
  • devildesires Avatar
  • Offline
  • Frischfleisch
  • Beiträge: 12
  • Dank erhalten: 5
Wenn ich ehrlich bin muss ich sagen, dass ich damit nicht mehr gerechnet habe und mich mental darauf vorbereitet alles zu löschen.

Aber ich freu mich, dass es endlich soweit ist und hoffe das ihr dran bleibt :)
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 9 Monate 1 Woche her #758799

  • Nihongasuki
  • Nihongasukis Avatar
  • Online
  • Techniker
  • &Manga Mod (Wikinger sind männlicher!)
  • Beiträge: 184
  • Dank erhalten: 525
Update:

Ab sofort kann man seine eigenen Keys unter proxer.me/api jederzeit einsehen, inklusive aller wichtigen Informationen dazu.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 9 Monate 1 Woche her #758930

  • inv3rse
  • inv3rses Avatar
  • Offline
  • Frischfleisch
  • Beiträge: 11
  • Dank erhalten: 19
Erstmal vielen Dank für die Arbeit an der API.
Nachdem ich mich in den letzten Tagen mit ihrer Integration beschäftigt habe, möchte ich hier einmal meine Wunschträume festhalten.

Api Key als Header Feld übergeben
Aktuell muss der Key im Request Body übergeben, dies hat zur Folge das jeder Request vom Typ POST sein muss.
Rein technisch ist auch ein GET Request mit Body möglich, davon wird jedoch abgeraten und Bibliotheken wie OkHttp verbieten dies.
Die dadurch notwendige Verwendung von POST bringt leider den Effekt mit sich das die Antworten vom Server nicht im Http Cache gespeichert werden.
Das Verschieben des keys in die Header ermöglicht dann außerdem das senden komplexerer Daten, ohne das der api_key irgendwie mit untergebracht werden muss.

Keine Verschachtelung der Daten fürs Error Handling
Was ich damit meine ist das ich schöner finde nur den Inhalt des "data" Feldes zurück zu geben, und wenn etwas Schiefgeht eine passenden Http Response (4xx) mit der Message und dem Code zu geben.
Dies vereinheitlicht bei dem Client das Error Handling, da die 5xx Antworten vom Server sowieso gehandhabt werden müssen und macht die Daten Modelle simpler.

----
Die Punkte sind dabei nur "nice to have" und nichts was man nicht auch lokal machen kann. Alles wesentlich schöner als die Website zu parsen ^^
Für letzteren Punkt habe ich bereits Workarounds, für das Caching der Post Requests muss ich mir jedoch noch etwas überlegen.
Wollte das nur mal Festhalten.

Grüße
inv3rse
Letzte Änderung: 9 Monate 1 Woche her von inv3rse.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: Desnoo, RubyGee

Die Wiedergeburt der Proxer-API!! 9 Monate 6 Tage her #759040

  • Nihongasuki
  • Nihongasukis Avatar
  • Online
  • Techniker
  • &Manga Mod (Wikinger sind männlicher!)
  • Beiträge: 184
  • Dank erhalten: 525
Api Key als Header Feld übergeben

Nun, dass es ein Post-Parameter ist, liegt schlichtweg daran, dass ich mir header noch nicht so genau angesehen habe xD
Aber ich könnte es vielleicht als zusätzliche Möglichkeit einbauen (dass man also POST und header hernehmen kann), ich schaus mir mal an.
Keine Verschachtelung der Daten fürs Error Handling

Das gibt es aus zwei Gründen nicht:
1. Ich habe keine Ahnung, wie man HTTP Errors erzeugt (ist aber kein Problem das rauszufinden)
2. Sollten Fehler die auf einen reinen Severfehler (z.B. HTTP Fehler 500) beruhen durchaus anders gehandelt werden als z.B. Fehler wegen falscher Eingabe. Man muss diese beiden also sowieso unterscheiden, und da es leichter ist (und semantisch sinnvoller, weil es ja kein tatsächlicher HTTP Fehler sondern in den meisten Fällen eine durchaus korrekt bearbeitete Antwort des Servers ist), die Errors einfach in die Datenrückgabe zu packen, haben wir uns dafür entschieden (abgesehen davon, dass ganz Proxer nach diesem Prinzip aufgebaut ist)

Deswegen wird es höchstwahrscheinlich beim alten System bleiben ^^
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 9 Monate 2 Tage her #759770

  • Masterside
  • Mastersides Avatar
  • Offline
  • Gelegenheitsposter
  • Let it Die SENPAI
  • Beiträge: 26
  • Dank erhalten: 15
Erstmal vorweg: Top API. Damit kann deutlich angenehmer arbeiten, als mit der alten.

Ein Feature das ich noch gerne sehen würde, ist die Möglichkeit über die API die Headerbilder des Monats abzufragen.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 9 Monate 11 Stunden her #760081

  • Nihongasuki
  • Nihongasukis Avatar
  • Online
  • Techniker
  • &Manga Mod (Wikinger sind männlicher!)
  • Beiträge: 184
  • Dank erhalten: 525
Update:

1. Man kann nun über den Header 'proxer-api-key' den api_key versenden, statt einem POST Parameter.

2. Die (vorrausichtlich) letzte Klasse wurde gebaut: die Media Klasse. In diese kommen auch die Streaming/Kapitel Schnittstellen. Diese werden wohl innerhalb der nächsten Woche(n) erscheinen, wann genau weiß ich nicht, habe noch Prüfungen xD

3. Wenn die IP gesperrt wird kann man nun folgende Seite verwenden: proxer.me/misc/captcha
Ein Feature das ich noch gerne sehen würde, ist die Möglichkeit über die API die Headerbilder des Monats abzufragen.

Das ist btw in der Media Klasse enthalten.


Außer den Schnittstellen für Streams und Kapitel sind keine weiteren geplant (auch nicht in anderen Klassen). Wenn ihr dennoch Wünsche für weitere habt, dann schreibt sie bitte in diesen Thread.


EDIT:

1. Das Login-Token kann nun auch per Header gesendet werden, Name: 'proxer-api-token'

2. Alle geplanten Schnittstellen sind nun implementiert
Letzte Änderung: 9 Monate 8 Stunden her von Nihongasuki.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: RubyGee, Masterside, cuechan, inv3rse

Die Wiedergeburt der Proxer-API!! 8 Monate 4 Wochen her #760254

  • Masterside
  • Mastersides Avatar
  • Offline
  • Gelegenheitsposter
  • Let it Die SENPAI
  • Beiträge: 26
  • Dank erhalten: 15
Gutes Update.

Ein Vorschlag noch von meiner Seite aus:
Es wäre gut, wenn in der Doku bei den Parametern noch der Type angegeben wird. Bei manchen Parametern kann man sich den Type mMn
nicht oder nur schwer zusammen reimen.

Ansonst Top.

Edit: Wäre es möglich den Sort-Parameter in der List/EntrySearch Funktion um Sort by latest Update zu erweitern?
Letzte Änderung: 8 Monate 4 Wochen her von Masterside.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 8 Monate 4 Wochen her #760683

  • Shinai33
  • Shinai33s Avatar
  • Offline
  • Gelegenheitsposter
  • Yoshikage Kira...
  • Beiträge: 31
  • Dank erhalten: 12
Ich muss ehrlich sagen, ordentliche Arbeit. Da habt ihr euch echt etwas ausgefuchstes überlegt.

Was ich vom Keysystem halten soll, weiß ich jedoch nicht. Ich weiß nicht wie viele daran interessiert sind, daher könnte es sein, dass ihr eine Flut an Spam bekommt, ich glaub ihr seid es jedoch schon gewohnt.

Dass man Listen von Entrys durch die Listklasse bekommen kann, ist zum Beispiel eine Funktion die sich als sehr nützlich erweisen könnte.
Wie dem auch sei, ich freue mich auf die API-Projekte!
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: Kaitoro

Die Wiedergeburt der Proxer-API!! 8 Monate 3 Wochen her #760983

  • Nihongasuki
  • Nihongasukis Avatar
  • Online
  • Techniker
  • &Manga Mod (Wikinger sind männlicher!)
  • Beiträge: 184
  • Dank erhalten: 525
Update:

Die Funktionalität des Login-Tokens wurde geändert, Zitat aus der Doku:

Dabei sind Token nicht unendlich lange gültig. Damit ein Token als gültig anerkannt wird, müssen folgende Bedingungen erfüllt sein:

- Das Token muss innerhalb der letzten 7 Tage erstellt oder verwendet worden sein UND eine der Folgenden Bedinungen muss erfüllt sein:
- Das Token wurde nicht länger als 30 Tage zuvor erstellt ODER
- Das Token wurde nicht länger als 1 Stunde zuvor verwendet

Dadurch lässt sich das Token verwenden, um die Speicherung von Userdaten zu vermeiden, zum Beispiel:
  1. Man loggt einen User ein, indem dieser seine Daten an die App gibt und diese die Userdaten direkt an die Schnittstelle weitergibt, ohne sie zwischenzuspeichern.
  2. Die App speichert das Login-Token, dass die Schnittstelle zurückgibt, verwendet allerdings trotzdem das cookie-Login System (natürlich kann sie auch das token-System verwenden)
  3. Wann immer eine "User nicht eingeloggt" Fehlermeldung (egal wo) kommt (oder bei jedem App-Start etc.), wird eine beliebige Schnittstelle mit dem Token aufgerufen, z.B. die Login-Schnittstelle.
  4. Dadurch wird der User wieder eingeloggt, ohne dass dessen Daten lokal gespeichert sein müssen
  5. Dies lässt sich bis zu einen Monat lang wiederholen (wenn der User mindestens einmal alle 7 Tage die App verwendet), dann muss der User seine Daten erneut eingeben

Die Ein-Stunden Regel dient dazu, zu verhindern, dass für eine App (die nur das Token verwendet, also keine Cookies) mitten in der Benutzung das Token ungültig wird. Die Verwendung eines ungültigen Tokens erzeugt eine Fehlermeldung (Code 1005).

Masterside schrieb:
Es wäre gut, wenn in der Doku bei den Parametern noch der Type angegeben wird. Bei manchen Parametern kann man sich den Type mMn
nicht oder nur schwer zusammen reimen.

Meinst du die Eingabe oder die Ausgabe-Parameter? und wo genau sind dir die Typen unklar?
Letzte Änderung: 8 Monate 3 Wochen her von Nihongasuki.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 8 Monate 3 Wochen her #760990

  • Masterside
  • Mastersides Avatar
  • Offline
  • Gelegenheitsposter
  • Let it Die SENPAI
  • Beiträge: 26
  • Dank erhalten: 15
Nihongasuki schrieb:
Masterside schrieb:
Es wäre gut, wenn in der Doku bei den Parametern noch der Type angegeben wird. Bei manchen Parametern kann man sich den Type mMn
nicht oder nur schwer zusammen reimen.

Meinst du die Eingabe oder die Ausgabe-Parameter? und wo genau sind dir die Typen unklar?

Sowohl als auch.

Bei List/EntryList z.B. bekommt man den State ausgegeben, der wie angegeben ein Integer ist.
Allerdings verstehe hier jetzt nicht, was die einzelnen Optionen (0,1,2,4) bedeuten.

(Nicht das beste Beispiel ich weiss)
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 8 Monate 3 Wochen her #760998

  • Nihongasuki
  • Nihongasukis Avatar
  • Online
  • Techniker
  • &Manga Mod (Wikinger sind männlicher!)
  • Beiträge: 184
  • Dank erhalten: 525
Allerdings verstehe hier jetzt nicht, was die einzelnen Optionen (0,1,2,4) bedeuten.

Ah, das liegt daran, dass es noch nicht in der Doku steht, offensichtlich.
Danke für den Hinweis, das wird nachgetragen.

Was die Angabe des Typs angeht: im Grunde sollte eigentlich klar sein, welcher Datentyp das ist, aber ich kann es gerne dazuschreiben.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Die Wiedergeburt der Proxer-API!! 8 Monate 2 Wochen her #762335

Ich fände es super, wenn in der Dokumentation zu jeder url ein Beispiel Response angegeben wäre.
So kann ich eine Anwendung anfangen zu implementieren, in der ich an jeder Stelle, wo ich ein Response verarbeiten möchte, ein Mockup verwenden kann, sodass ich, wenn ich weit genug bin, um berechtigt einen API-KEY anzufragen, nur noch die Stellen anpassen muss und die Anwendung läuft Problemlos :D!

Zum Beispiel hier ein erfolgreicher Response (mutmaße die Richtigkeit und die Mutmaßung ist auch das Problem :) )
{
  error: 0
  message: "Der Status ist grün"
  data: [
    {
      id: 23,
      name: "Adleramin on the Sky",
      count: 12,
      medium: "animeseries",
      estate: "Airing",
      cid: 32,
      comment: "Ein Kommentar, aber kann man denn nicht mehrere Kommentare haben?",
      state: "irgendein Status",
      episode: 2,
      data: "irgendwelche daten, string? integer? welche daten?",
      rating: 10,
      timestamp: 1471030200
    }
  ]
}
Letzte Änderung: 8 Monate 2 Wochen her von MartinLasek.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
  • 2
Ladezeit der Seite: 0.200 Sekunden
Powered by Kunena Forum