Autor Thema: XML API  (Gelesen 2409 mal)

Offline arminus

  • Nano
  • **
  • Beiträge: 83
XML API
« am: 17. April 2013, 20:12:08 »
Hallo,

ich wollte mir eben mal die XML API ansehen. Hab dazu folgende URL aus der Doku kopiert:
http://www.opencaching.de/xml/ocxml12.php?modifiedsince=20060101000000&cache=1&cachedesc=1&cachelog=1&picture=1&removedobject=0&lat=48&lon=9&distance=10&picturefromcachelog=1

(und lediglich den modifiedsince param angepasst)

und dann in den Firefox RESTClient gefüttert. Ergebnis:

Seite: sql_error
Fehlermeldung: Ein Datenbankbefehl konnte nicht ausgeführt werden.

in einer HTML (?!) Seite ...

Was mach ich falsch ?

Danke,
Armin

Mod: Ergebnismenge des Beispiels verringert ... wer weiß wie viele Leute hier draufklicken
« Letzte Änderung: 18. April 2013, 01:37:54 von following »

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Re: XML API
« Antwort #1 am: 17. April 2013, 21:06:15 »
Ja, ich kriege hier auch den gleichen Fehler bei meiner Anwendung. Mal schauen, was da los ist.

following

  • Gast
Re: XML API
« Antwort #2 am: 18. April 2013, 00:02:07 »
Ist repariert.

Offline arminus

  • Nano
  • **
  • Beiträge: 83
Re: XML API
« Antwort #3 am: 18. April 2013, 08:33:28 »
Danke.

2 Fragen hätte ich noch:
  • Gibt's irgendwo eine Beschreibung der möglichen Werte für type und status ?
  • Für meine Karte zeige ich an ob ein Cache von dem bei mir eingeloggten Besucher gefunden ist oder nicht. Eure API scheint nicht vorzusehen eine userid bei der Abfrage mitzugeben. D.h. ich muss für jeden Cache alle logs mit abholen und prüfen ob ein Found log des aktuellen Users dabei ist um den Found Status eines Caches zu bestimmen ?

following

  • Gast
Re: XML API
« Antwort #4 am: 18. April 2013, 12:17:23 »
Gibt's irgendwo eine Beschreibung der möglichen Werte für type und status ?

Im OC-Quelltext. :)

Genauer: hier unter "cache_type" und "cache_status".

Zitat
D.h. ich muss für jeden Cache alle logs mit abholen und prüfen ob ein Found log des aktuellen Users dabei ist um den Found Status eines Caches zu bestimmen ?

Ja... den Fundstatus abzufragen ist im XML-Interface bislang nicht vorgesehen; ließe sich aber einbauen.

Mit der OKAPI geht es. Wäre die für deine Zwecke ausreichend, trotz des Limits von 500 Caches pro Suchabfrage?

Offline arminus

  • Nano
  • **
  • Beiträge: 83
Re: XML API
« Antwort #5 am: 18. April 2013, 12:37:22 »
Zitat
Ja... den Fundstatus abzufragen ist im XML-Interface bislang nicht vorgesehen; ließe sich aber einbauen.
Ich denke das wäre besser, sonst muss viel Traffic über die Leitung nur um diesen Status zu bestimmen.
Zitat
Mit der OKAPI geht es. Wäre die für deine Zwecke ausreichend, trotz des Limits von 500 Caches pro Suchabfrage?
Schwer zu sagen. Die analoge Funktion für GC ist per Live API für den aktuellen Karten-Ausschnitte alle Caches herunter zu laden. (die params dafür sind center lon/lat, radius und der username). Das können natürlich mehr als 500 sein. Mit OKAPI müsste ich das dann in mehrere calls splitten, oder ? Und die steht noch nicht zur Verfügung, oder ?

following

  • Gast
Re: XML API
« Antwort #6 am: 18. April 2013, 13:14:42 »
Im Moment hängt leider alles daran, dass unser Server endlich wieder stabil läuft: Der Start der OKAPI oder auch andere Verbesserungen, z.B. am XML-Interface. Wir sind vollauf damit beschäftigt, die Kiste am Laufen zu halten und die Fehlerursache einzukreisen.

> Mit OKAPI müsste ich das dann in mehrere calls splitten, oder ?

Ja. Du könntest z.B. die bbox-Suche verwenden, um die Karte quadratweise abzuscannen. Wenn mehr als 500 Einträge vorhanden sind bekommst du das zurückgemeldet und könntest dann die Quadrate verkleinern.

Offline arminus

  • Nano
  • **
  • Beiträge: 83
Re: XML API
« Antwort #7 am: 18. April 2013, 13:34:21 »
Zitat
Wenn mehr als 500 Einträge vorhanden sind bekommst du das zurückgemeldet und könntest dann die Quadrate verkleinern
Mmmm, das liest sich irgendwie wie trial&error  ;) Ich glaube mir wäre der XML Weg lieber. Wie käme ich momentan am einfachsten zu einem Test-Server ? Bin jetzt nicht der PHP Spezialist, aber letztendlich würde es ja "nur" auf einen weiteren param für ocxml12.php, eine zusätzlichen SQL Abfrage pro Cache (hat der user dort einen found ?) und eine Erweiterung der XML DTD handeln. Und Wochenende soll's regnen ;-) Wie restriktiv seid Ihr an der Stelle ? (Abwärtskompatibilität und so ..) Oder wird sowas dann gleich ocxml13.php mit allem was dran hängt ?

Offline mic@

  • Vereinsmitglied
  • Large
  • *
  • Beiträge: 6321
  • oc-only Verstecker
Re: XML API
« Antwort #8 am: 18. April 2013, 13:49:28 »
Zitat von: arminus
Wie käme ich momentan am einfachsten zu einem Test-Server ?

Hier findest Du alles Nötige: http://wiki.opencaching.de/index.php/Entwicklung
Den Rest kann Dir Peter (following) erzählen, sobald er seinen Freudentanz über einen neuen Entwickler beendet hat  ;)

following

  • Gast
Re: XML API
« Antwort #9 am: 18. April 2013, 13:53:00 »
Eine Abfrage pro Cache wäre zu langsam. Das müsste in diese Abfrage eingebaut werden, die alle Daten für alle Caches abfragt (per LEFT JOIN auf die Logtabelle). Als Vorlage kann der Kartencode im map2.php dienen, der macht das Gleiche für die Fundanzeige auf der Karte. Die Performance ist dann nochmal mit einem großen XML-Job zu prüfen - wenn er dreimal so lange braucht wie vorher, ist was schief gelaufen. ;)

Ich wäre dafür es sauber zu implementieren, also XML-Version 1.3. In die Version 1.3 sollten eigentlich auch die zusätzlichen Wegpunkte rein ... aber notfalls wird das dann halt 1.4.

Wie käme ich momentan am einfachsten zu einem Test-Server ?

-> http://wiki.opencaching.de/index.php/Entwicklung/Entwicklersystem

Wegen Aufnahme ins Team kannst du Micha anschreiben (4_Vs).

Offline arminus

  • Nano
  • **
  • Beiträge: 83
Re: XML API
« Antwort #10 am: 18. April 2013, 14:15:12 »
Zitat
Eine Abfrage pro Cache wäre zu langsam.
Klar, das war ja nicht mal pseudo-code  ;) Danke jedenfalls mal für die Pointer, ich schau mal ohne jetzt was zu versprechen ... Die aktuelle Anbindung über GPX tut ja zunächst mal.

Offline arminus

  • Nano
  • **
  • Beiträge: 83
Re: XML API
« Antwort #11 am: 20. April 2013, 11:05:26 »
Also von 4_Vs hab ich noch nichts gehört - aber ihr seid wohl gerade ziemlich beschäftigt. Hab mal einen Blick auf Wir basteln uns ein Entwicklersystem geworfen, was mir dort vor allem fehlt: Wie komm ich an einen DB dump ?
cd doc/sql/tables
for SQL in `ls *.sql`; do mysql -u <...> -p <...> opencaching < $SQL done
cd ../data
mysql -u <...> -p <...> opencaching < data.sql
cd ../stored-proc
php maintain.php
damit hab ich die Struktur - und dann ?

Zitat
Um die Datenbank exakt auf den richtigen Stand zu bringen, geht man am besten wie folgt vor:

1. http://local.opencaching.de/oc-server/server-3.0/htdocs/translate.php
2. SQL Export

die URL tut aber nicht ...

following

  • Gast
Re: XML API
« Antwort #12 am: 20. April 2013, 13:39:20 »
Hab mal einen Blick auf Wir basteln uns ein Entwicklersystem geworfen,

Das ist veraltet, wir haben eine viel bessere Anleitung im internen Wiki. Hab Micha nochmal angeschrieben wegen Teamzugang ..

Zitat
damit hab ich die Struktur - und dann ?

doc/sql/static-data/data.sql einlesen

Offline arminus

  • Nano
  • **
  • Beiträge: 83
Re: XML API
« Antwort #13 am: 20. April 2013, 13:53:12 »
Zitat
doc/sql/static-data/data.sql einlesen

Jo danke, die hab ich schon drin. Das sind aber nur meta (?) Daten, Translations etc. so wie ich das sehe. Die Frage war wie ich an tatsächliche Cache Daten (die realen oder zumindest dummies) komme - aber ich warte dann mal auf das neue Wiki.

following

  • Gast
Re: XML API
« Antwort #14 am: 20. April 2013, 23:21:08 »
Einen Dump mit realen Cachedaten können wir aus rechtlichen Gründen nicht veröffentlichen, weil Caches enthalten kann, die inzwischen gesperrt/versteckt sind. Eine Sammlung mit Dummydaten wäre hilfreich, aber bislang gibt es keine (wer mag eine erstellen?)

Das alte Entwicklersystem enthält einen Dump mit echten, älteren Cachedaten, allerdings müssen dort alle Datenbankänderungen manuell nachgepflegt werden. Ich kann teamintern auch einen neueren Dump bereitstellen, wo nur die Hälfte nachzupflegen ist. Irgendwann werde ich auch mal wieder einen aktuellen basteln.

Hier zeigt sich das Hauptproblem der Opencaching.de-Entwicklung: Die Einstiegshürde für neue Entwickler ist viel zu groß. Wenn diese Liste erst mal abgearbeitet ist, wird es wesentlich einfacher sein - nur fehlt es an Leuten, die beim Abarbeiten dieser Liste mithelfen, daher kann das noch lange dauern.
« Letzte Änderung: 20. April 2013, 23:26:25 von following »