Wenn Datenbank genutzt wereden soll: gbv_stat.sql in die DB einspielen und Zugangsdaten zur Datenbank+Tabelle in die passende ini-Datei in config/ eintragen.
- PHP >= 5.3
- php_curl Modul
- php_mysqli Modul für MySQL-Operationen
Es wird die Version 1 der OAS-API genutzt. URL, Benutzer und Passwort zur Nutzung der API ist bei GBV zu erfragen.
Konfigurationsdateien liegen im Ordner config. Der Dateiname der Konfigurationsdatei (ohne die Erweiterung '.ini') ist das erste Argument für den aufruf auf der Konsole.
In der Datei sind Konfigurationsparameter in mehrere Abschnitte unterteilt: common wird immer eingelesen. Wunschabschnitt mit Ergänzungen (überschreibt die Parameter aus common) wird zusätzlich gelesen. Es ist das zweite Argument des Aufrufs und darf 'commom' heißen.
Die Parameter in der ini-Datei entsprechen den privaten Variablen in der ConfigParser-Klasse (ohne einleitende Unterstriche).
- dbXxxx betrifft die Datenbank,
- apiXxx die HTTP-Schnittstelle der API,
- target kann db (schreiben in mysql), stdout (dierekte Ausgabe) oder store (speichern in Datei, Dateiname ist das 7. Argument = destination). Ein anderer Target wie Mail etc soll DataHandlerInterface implementieren.
- callMethod gibt die Methode des Abrufs an (aktuell nur curl in CallMethodCurl.php umgesetzt, denkbar ist aber auch fopen und curl-bin, wget-bin - soll CallMethodInterface implementieren)
- weitere Parameter sind Parameter der API (format = json|csv nur json wird verarbeitet; *granularity = day|week|month|year; content = counter,counter_abstract,robots,robots_abstract - Mehrfachnennung möglich, Nicht-Buchstabe ist Trenner, prefix = OAI-Prefix oder ganze OAI-ID - % ist Joker)
Parameter:
- Name der ini-Datei
- Abschnitt in der ini-Datei
- ID- oder OAI-Prefix, der abgeholt werden soll
- from-Argument der API (2014-10-13, oder '-5 days')
- until-Argument der API (2014-10-30)
- target = wohin mit den Daten
- destination = aktuell nur in 'save' für den Datei-Pfad verwendet (Tabellenname ist in dbTable in der ini-Datei)
php app.php REPO1
Holt die Daten nach den Vorgaben des commom-Abschnitts der Datei config/REPO1.ini für die letzten drei Tage.
- Spalte country in der Tabelle, dieses Datum wird nicht geliefert
- Andere Aufruf-Methoden nach CallMethodInterface
- Andere Targets (wem db,stdout und store nicht reichen)