API-Calls im Ninox-Skript
Rufen Sie die Ninox-API mit der http()-Funktion über den Formeleditor auf
Um andere Dienste im Internet aufzurufen, verwenden Sie den Formeleditor in der Ninox-App und die Ninox-API. Abfragen von Informationen oder das Senden von Updates können mit der http()
-Funktion von anderen REST-Diensten durchgeführt werden. Die http()
-Funktion kann in Triggern mit POST
verwendet werden, jedoch nicht mit GET
.
Wenn die Funktion von einem Button aufgerufen wird, wird die
http()
-Funktion im Kontext des Clients/Web-Browsers ausgeführt. Um dies zu verhindern, setzen Siedo as server {http(…) end}
zwischen die Funktion und den Button.
Syntax
http(method, url)
http(method, url, body)
http(method, url, headers, body)
Parameter
method: GET, POST, PUT, DELETE
url: eine gültige HTTP/HTTPS-URL
headers: ein JSON-Objekt, das den HTTP-Header angibt
body: ein String oder ein beliebiges JSON-Objekt
Rückgabewert
Ein JSON-Objekt, das entweder ein Fehler- oder ein Ergebnis-Property enthält
Beispiele
In geschweiften Klammern
{ }
steht für einen Platzhalter. Sowohl die geschweiften Klammern als auch der Inhalt müssen ersetzt werden, damit die Anfrage funktioniert.
Ein GET
-Request ohne Autorisierungsheader
let response := http("GET", "http://mytestservice.com/path");
if response.error then
alert(text(response.error))
else
alert(text(response.result))
end
Ein GET
-Request mit Autorisierungsheader
let response := http("GET", "http://mytestservice.com/path",
{
"Authorization": "Bearer {accessToken}"
}, null);
if response.error then
alert(text(response.error))
else
alert(text(response.result))
end
Ein POST
-Request mit Autorisierungsheader
let response := http("POST", "http://mytestservice.com/path",
{
"Authorization": "Bearer {accessToken}",
"Content-Type": "application/json"
},{
hello: "World",
'special character property': 1234
});
if response.error then
alert(text(response.error))
else
alert(text(response.result))
end
Aufruf von Diensten im Server-Kontext
Möglicherweise möchten Sie HTTP-Abfragen über den Ninox Cloud-Server und nicht über den Client ausführen. Dies ist besonders wichtig, wenn nicht-SSL-APIs aufgerufen werden, da die Ninox-native Anwendung für Mac, iPhone und iPad keine unsicheren Endpunkte abfragen kann.
Um die Ausführung von Code auf dem Ninox Cloud-Server zu erzwingen, betten Sie die
http()
-Funktion in einendo as server
-Block ein.
Beispiel
let response := do as server
http("GET", "http://mytestservice.com/path")
end;
if response.error then
alert(text(response.error))
else
alert(text(response.result))
end
URLs erstellen
Wenn Pfadparameter Leerzeichen oder Sonderzeichen enthalten, benötigen sie eine spezifische Kodierung. Um diese Kodierung zu handhaben, enthält Ninox-Skript eine Reihe von Funktionen:
HTTP | Ninox-Skript |
---|---|
urlEncode("Test Parameter") |
"Test%20Parameter" |
urlDecode("Test%20Parameter") |
"Test Parameter" |
url("http://mytestapi.com", { page: 1, perPage: 20, order: "First Name" } |
|
JSON-Syntax
Die JSON-Syntax stammt aus der JavaScript Object Notation Syntax:
Daten sind in Name/Wert-Paaren
Ein Name/Wert-Paar besteht aus einem Feldnamen (in doppelte Anführungszeichen gesetzt), gefolgt von einem Doppelpunkt, gefolgt von einem Wert
Daten sind durch Kommas getrennt
Geschweifte Klammern enthalten Objekte
Eckige Klammern enthalten Arrays
Zahlen als Ganzzahlen mit Punkt
.
als Dezimaltrennzeichen
Beispiel
{ name: "Lisa" }
{ name: "Lisa", age: 28 }
{ name: "Lisa", age: 28, address: { street: "A Street" } }
{ name: "Lisa", children: [ { name: "Charlie" }, { name: "Sarah" } ] }
JSON-Syntax |
Beschreibung |
|
ein leeres Objekt |
|
ein leeres Array |
|
eine Zahl |
|
ein String |
|
ein Objekt, das einen String enthält |
|
ein Objekt, das einen String und eine Zahl enthält |
|
ein Objekt, das zwei Strings und eine Zahl enthält |
|
ein Objekt, das ein Array enthält, das zwei Strings enthält |
Escaping von Objekteigenschaftsnamen
Wenn ein Eigenschaftsname Leerzeichen oder Sonderzeichen enthält oder mit einer Zahl beginnt, muss er in einfache Anführungszeichen ' '
gesetzt werden. Um ein einfaches Anführungszeichen in einem Eigenschaftsnamen zu verwenden, schreiben Sie zwei einfache Anführungszeichen.
Beispiel
{ name: "Lisa ""the quoted"" Maria" }
Optional können Sie reservierte Schlüsselwörter wie
order
,from
undto
in einfache Anführungszeichen' '
setzen, wenn Sie diese Schlüsselwörter als Eigenschaftsnamen verwenden.
Escaping von String-Werten
String-Werte müssen in doppelte Anführungszeichen " "
gesetzt werden. Um ein doppeltes Anführungszeichen in einem String-Wert zu verwenden, schreiben Sie zwei doppelte Anführungszeichen.
Beispiel
{ name: "Lisa ""the quoted"" Maria" }
Verwendung von Ausdrücken zur Konstruktion eines JSON-Objekts
Eigenschaftswerte und Mitglieder von Arrays können auch mit beliebigen Ninox-Ausdrücken konstruiert werden.
Beispiel
{ result: 10 * 5 + 6 } —> { result: 56 }
{ powers: for i in [1, 2, 3] do i*i end } —> { powers: [1, 4, 9] }
Evaluierung von JSON-Objekten
Die meisten Dienste geben JSON-Objekte zurück. Sie können JSON-Objekte mit Ninox-Skript verarbeiten und evaluieren.
Zugriff auf Objektwerte
Sie können auf Objektwerte oder Eigenschaften mit der Punktnotation .
zugreifen.
Beispiel
response.result.id
response.result.fields.'First Name'
Antwort
Content aside
- vor 13 TagenZuletzt aktiv
- 36Ansichten
-
1
Folge bereits