Einfacher API Request - Keyline MIS
Hallo Zusammen,
ich möchte einen bestimmten Endpoint in der Keyline API ansprechen. (DOCU https://www.keyline-mis.de/docs/api)
Die API setzt die Bearer-Authentifizierung ein.
Folgender Code:
let response := http("GET", "https://app.keyline-mis.com/api/v2/sales/orders", {
Authorization: "Bearer " + keyline_APIkey(),
'Content-Type': "application/json"
});
if response.error then
alert(text(response.error))
else
alert(text(response.result))
end
Das ganze wird beim klicken eins Buttons ausgeführt.
Leider bekomme ich nur die Meldung "Request failed: error - ".
Folgende Fragen habe ich dazu:
1.Wo liegt mein Fehler?
2.Wie kann ich den Error Code den die API übergibt auslesen?
3.Wie kann ich die Rückmeldung response.result in ein Textfeld neben dem Button ausgeben?
4.Wie kann ich das Ergebnis response.result in eine Tabelle schreiben und bestimmen welcher Teil des JSON wo landet?
Im Voraus vielen Dank!
lg
Ben
7 Antworten
-
Hallo Ben,
es fehlt noch Body in der Abfrage. Wenn keine Optionen verfügbar sind, einfach leere geschweifte Klammern. Und ich würde das ganze noch als Server lauffen lassen:
---
let response := do as server
http("GET", "https://app.keyline-mis.com/api/v2/sales/orders", {
Authorization: "Bearer " + keyline_APIkey(),
'Content-Type': "application/json"
},{
})
end;
if response.error then
alert(text(response.error))
else
alert(text(response.result))
end
---
-
Vielen Dank Leonid!
Das hat geklappt. Frage 3 hat sich auch erledigt, das habe ich hinbekommen.
Bleibt noch Frage 2: Wie kann ich den Error Code den die API übergibt auslesen?
Und Frage 4: Wie kann ich das Ergebnis response.result in eine Tabelle schreiben und bestimmen welcher Teil des JSON wo landet?
-
Hallo Ben,
2. Eigentlich sollte es beim Error in dem Alert zu lesen sein.
4. Ich kann dir leider keinen universellen Code liefern um deine json Datei zu parsen. Da muss man schon die responce Datei sehen (und auch die Tabelle kennen).
-
Hallo Leonid,
vielen Dank für deine Antworten!
Als Beispiel habe ich ein Response-JSON von der Giphy.com API in mein gdrive geladen link:
https://drive.google.com/file/d/1YyHsq2uyNRh7rsShsZsmaWWZD_iFwM3n/view?usp=sharing
Wenn ich das JSON in Visual Studio Code anschauen sieht der Pfad zu der *.mp4-URL wie folgt aus:
In Python3 bekomme ich das ohne Probleme hin:
In ninox habe ich es versucht mit:
let re := do as server
http("GET", "https://api.giphy.com/v1/gifs/trending?api_key=" + giphy_APIkey() + "&limit=1&rating=R", {
'Content-Type': "application/json"
}, {})
end;
if re.error then
alert(text(re.error))
else
'API Name' := "GIPHY";
response := text(re.result);
Querylink := text(re.result.['0'].images.looping.mp4)
endAber das Feld Querylink enthält nur ein leeres array "[]". Das Feld response funktioniert.
Ohne die Null wird gar nichts ausgegeben.
Als nächstes möchte ich dann in einem Berechnungsfeld die mp4 ausgeben bzw als html einbetten.
html("<video width='100%' preload='true' controls><source src=" + Querylink + " type='video/mp4'></video>")
Vielen Dank im Voraus für deine Hilfe!
lg
Ben
-
Die Bilder wollten erst nicht mitkommen.... (Fehler:"Payload to high" oder sowas ;) )
Wenn ich das JSON in Visual Studio Code anschauen sieht der Pfad zu der *.mp4-URL wie folgt aus:
In Python3 bekomme ich das ohne Probleme hin:
-
argh... falsches Bild.
-
Tatsächlich hab ichs jetzt selbst geschnallt was das Problem ist...^^
Mit text(re.result.data.['0'].images.looping.mp4) funktioniert es. Das "data" hat hier noch gefehlt...
Jetzt hatte ich noch das Problem dass die URL im Querylink Textfeld als array ausgegeben wird (
["https://media2.giphy.com/media/kz09Btl6RgiZyZDbEh/giphy-loop.mp4?cid=12c52cd65d3eb18a6b77592e413ccc94&rid=giphy-loop.mp4"]
)und das im HTML code nicht funktioniert. Das konnte ich mit einem slice lösen slice(text(re.result.data.['0'].images.looping.mp4), 1, -1)Vielen Dank nochmal!
Content aside
- vor 5 JahrenZuletzt aktiv
- 7Antworten
- 2409Ansichten