Dieses Dokument beschreibt die API, welche für fotoCH entwickelt wurde und öffentlich genutzt werden kann. Diese API wird vom neuen AngularJS basierten Frontend benutzt: https://de.foto-ch.ch/ Zu inhaltlichen Aspekten verweisen wir auf das foto-ch-Handbuch. Die API wird ständig weiterentwickelt. Künftige Änderungungen sollten mit dieser Version kompatibel sein. Nötige Anpassungen und Fehlerbehebungen können aber vorkommen.
Alle API Aufrufe in diesem Dokument sind relativ zu API-URL: https://de.foto-ch.ch/api/. Die Daten werden im JSON Format zurückgegeben.
Die Inhalte von fotoCH sind unter folgenden Bedingungen nutzbar:
Mit dem Parameter lang kann angegeben werden, in welcher Sprache der Content gewünscht wird
Folgende Objekttypen können als Liste oder Einzelsatz abgerufen werden:
Gibt mehrere JSON Objekte als gestreamte Anworten zurück.Wird für Listenansichten und Suchen verwendet Erlaubte Parameter:
query
Suchparameterlimit
Limitiert die Anzahl Resultatephotolimit
(Reduziert bei einer kompletten Suche die Anzahl Fotos speziell)offset
Definiert ein Offset für die Anfragetype
sucht nur nach einem spezifischen Typen. Erlaubte Werte:
'photographer', 'stock', 'institution', 'exhibition', 'literature', 'photos'
sort
Feld, nachdem sortiert werden sollsortdirection
ASC oder DESCdirect
Direkte Suchanfrage auf ein spezifisches Feld, Beispiel:
?...&direct=institution.ort:Aarau,institution.kanton:AG
$http({
method: "GET",
url: "https://de.foto-ch.ch/api/?a=streamsearch&query=apfel",
headers: {
'Content-Type': "text/plain"
},
transformResponse: [function (data) {return data;}],
onProgress: function(event) {
try {
var response = event.currentTarget.responseText;
response = response.replace(/}{/g, "},{"); // Fehlende Komma's zwischen den Resultaten
response = "[" + response + "]"; // Zu Array "umwandeln"
var newresult = JSON.parse(response); // Nun gültiges JSON parsen
newresult = newresult[newresult.length-1]; // Letzte Antwort extrahieren
console.log(newresult);
} catch (e) {
console.log(e);
}
}
}).then(function(e) {
// done
});
Kann verwendet werden um von gewissen Feldern die “DISTINCT” Werte zu erhalten, um entsprechende Filterungen auf Inhalte und “direct” Queries für die Streamsearch durchzuführen.
Teilweise werden nur Texte, Teilweise ein Assoziative Array mit ID und Value zurückgegeben, Wird ID & Value zurückgegeben, muss die direct Search in der Stream Query mit der ID durchgeführt werden.
Query Beispiel: /?a=filters&type=bildgattungen
type
Auswahl des gewünschten Typen. Erlaubte Werte:
fotografengattungen
bildgattungen
fotografen_kanton
institution_kanton
institution_ort
ausstellung_jahr
ausstellung_typ
ausstellung_ort
literatur_jahr
literatur_ort
photo_stichworte
photo_stocks
dieser Bereich ist noch nicht definitiv! Test im Frontend: [https://de.foto-ch.ch/#/test] https://de.foto-ch.ch/#/test