JSON Rest API abfrage


#1
Hallo und einen wunderschönen Tag

Ich bin momentan an einem Problem, welches ich nicht selber lösen kann:
Uns werden zur Auswertung Daten zur Verfügung gestellt welche über json empfangen werden. ich hatte bereits einen kurzen ausflug in json gemacht, da hatte ich aber für die verbindung eine Anleitung. doch diese hilft mir nicht weiter. alles was ich an Informationen habe ist folgendes:
api.PNG
Neben diesen Angaben, besitze ich den API KEY und einen Benutzernamen und ein Passwort.

Jetzt ist die Frage, wie kann ich mit dem JSON verbinden? ich habe bereits Google Bemüht, doch leider ohne Erfolg. da wurde nie ein API-KEY übergeben, oder aber nur der API-KEY und wenn ich dann etwas gebastelt habe, bekomme ich immer eine lehre Seite zurück.

Wenn mir jemand nur ansatzweise einen Tip oder einen Link zu einer Anleitung zustellen könnte, wäre ich Sehr dankbar.

Besten Dank und einen schönen Tag
bambid
 
#2
Hallo Zusammen
Sorry bin selbst darauf gekommen, musste nur die richtige Webadresse aufrufen und schon hat es geklappt. nur die Hauptdomain hat leider nicht geklappt. :)

und dies nach 3 Stunden suchen im Google.

Trotzdem Danke.

gruss bambid
 
#3
Hallo tambid,

mit JSON kann man sich nicht verbinden. JSON (JavaScript Object Notation ) ist einfach ein Datenformat in einer einfach lesbaren Textform zum Zweck des Datenaustauschs zwischen Anwendungen.
Zu deiner Frage: stelle dir vor du schreibst eine App welche z.B. Amazon, oder Google API verwendet. Amazon, Google usw. stellen Ihre Services nicht umsonst: alles ist eine Frage des Geldes. Du bekommst also einen API-key von Amazon, Google oder von wem auch immer, du die Services in Anspruch nimmst.
Damit ich deine App verwenden kann, muss diese also sich gegenüber Amazon, Google oder sonst wen, sich "identifizieren", damit Amazon, Google, usw., weißt "Die App der Firma xy möchte auf unsere Services zugreifen" (aslo u.A. Rechnung updaten). Mit dem username/password soll sich der User gegenüber deiner App identifizieren.
Ich hoffe dir damit ein bisschen geholfen zu haben.
Das und das könnte dir weiterhelfen.

Gruß
Meziano
 
#4
Hallo Meziano

Danke dir für die Tipps, da mein English nicht das Beste ist es nicht so einfach herauszufinden, ob dies für mich stimmt.
Aktuell logge ich mich mit http://benutzer:passwort@api.___.ch/rest/v1 ein, was auch wunderbar funktioniert, doch denke ich nicht, dass dies der richtige weg ist. da sollte es doch bei PHP irgendwie möglich sein, die Adresse über die Header den API-KEY zu übergeben, doch habe ich kein Beispiel gefunden, wie ich dies vollziehen kann oder ich habe die Möglichkeiten nicht verstanden oder falsch umgesetzt. Ich möchte dies möglichst Sauber abarbeiten und nicht noch lange mit Passwort und allem immer wider frisch anmelden.

kannst du mir da weiterhelfen?

Gruss bambid
 
#6
Hallo Kalito

Danke dir für den Hinweis, doch leider ist dies nicht so ein Ansatz den ich gedacht habe, ich habe bereits mit curl etwas probiert, doch dies funktioniert nicht so wie ich das will. ich hatte mal ein script ganz zu beginn der Aufbaufase welche mit der api gearbeitet hat also iwie so:
$api = "hinbeodlndo39=="

und da hatte ich auch 200 zurückbekommen, doch konnte ich zu diesem Zeitpunkt die Daten noch nicht auslesen, jetzt könnte ich die Daten auslesen habe aber diesen Zugang von damals nicht mehr.

Aktuell funktioniert die Abfrage gut, ausser wenn wie es auf der Webseite der Fall ist dass der Kunde 3 unterschidliche Abfragen auf einmal auf einer Seite mittels iframe macht.

da kann es vorkommen (nicht immer) dass folgender Fehler ausgegeben wird:
Code:
Warning: file_get_contents(http://...api. ....): failed to open stream: HTTP request failed! HTTP/1.1 422 Unprocessable Entity in...
Jetzt weiss ich nicht, ob dies an der Abfrage header liegt, oder am iframe. die Daten werden wenn die Seite geladen wird in einem Textdokument für 2 Minuten zwischengespeichert. wenn die Datei älter ist als 2 Minuten wird diese mit den neuen Daten befüllt. sollte von der Menge an Anfragen welche der Restserver zulässt absolut keine Probleme ergeben, auch wenn 3 gleichzeitig geladen werden.

kannst du oder sonst jemand einen Reim darauf machen?

lg bambid
 

Neue Beiträge