json-Datei bei API-Abfrage mit NINOX-cloud
Hallo Gemeinde,
vielleicht weiss das jemand: ich gehe über eine API-Schnittstelle meines eigenen Programms gemäß dem NINOX-Code und zum Leisten von Support will meine programmierende Firma die "echte" json-Datei welche durch Ninox ja bei der "do as server " Anfrage generiert. Komme ich da irgendwie ran an diese json-Datei? Mit dem Ninox-Code wollen die mir nicht helfen...
Danke im voraus. Peter
9 Antworten
-
Hallo Peter,
eine JSON Datei ist im grunde eine Textdatei mit der Endung .json
du kannst z.B. bei dir ein Bildfeld neben denem Button für REST Call erstellen und nach dem API Aufruf das Ergebnis das Buldfeld schreiben:---
let response:=do as server
...
...
end;
Bildfeld:=createTextfile(this, formatJSON(response.result),"myResponse.json")
---
Die Datei myResponse.json kannst du dann an den Dienstleister senden.
Leo
-
Hallo Leo,
Dein Code bringt mir den response in die Datei. Ich benötige jedoch das was Ninox an den anderen Server per JSON sendet...
ausserdem inzwischen ergänzt soll es wohl im respone eine Rückmeldung im Header geben, wie greife ich die denn ab??? Original-Text des Programmierers:
Hallo Peter,
wenn du keine explizite Fehlermeldung vom Server zurück bekommst, dann musst du innerhalb des Response Headers nach dem Fehlercode schauen.
Danke Leo, was würde ich nur ohne dich machen ?!
LG Peter
-
Hallo Peter,
wie sieht den die http formel aus?
Leo
-
Meinst du meine json Anfrage? Lg Peter
-
Ja
-
Na erst hole ich mir den Token nach deiner Anleitung:
let url := "https://stage.pxxxxxx.de/api/login_check";
let header := {
'Content-Type': "application/json"
};
let body := {
username: "xxxxxxxx",
password: "xxxxxxx"
};
let response := do as server
http("POST", url, header, body)
end;
let myToken := response.result.token;
let 'myRefresh-Token' := response.result.refresh_token;
Token := myToken + ('Refresh-Token' := 'myRefresh-Token')dann mache ich meinen Eintrag:
let tomorrow := today() + 1;
let Bearer := "Bearer " + Token;
let url := "https://stage.pxxxxxxxxx.de/api/dms/registrations";
let header := {
Authorization: Bearer,
'Content-Type': "application/json",
customer_branch_reference: "xxxxxxxx"
};
let body := {
registration_reference: FIN + now(),
customer_branch_reference: "xxxxxxxx",
registration_type_uuid: "0965d451-3fec-408f-9bxxxxxxx",
registration_date: "11.05.2020",
bank_data: {
iban: 'IBAN Halter'
},
vehicle: {
vin: FIN
},
vehicle_owner: {
first_name: VName,
last_name: NName,
street: STRASSE_WOHNORT,
house_number: NR,
zip_code: PLZ_WOHNORT,
city: WOHNORT
},
license_plate: {
reservation: false,
license_plate: "L-A 11"
}
};
let response := do as server
http("POST", url, header, body)
end;
if response.error then
alert(text(response.error)) + alert(text(response.error.custom_response_code))
else
alert(text(response.result))
end + (Bildfeld := createTextFile(this, formatJSON(response.result), "myResponse.json"))gebe ich zum Beispiel beim datum today() ein (was verboten ist) kommt ein sauberer Fehler im response.
gebe ich dort tomorrow an, (weil samstag ist ist das auch verboten) kommt der fehler angeblich im header der response....wie der programmierer schrieb. ich bin am verzweifeln, weil die mir nicht helfen wollen, wenn ich ncht die .json abfrage hinmaile (was ninox ja von seinem code in json tun muss irgendwie)
LG :-)
-
hier noch die reaktion von der anderen Seite komplett dazu:
Hallo Peter,
wenn du keine explizite Fehlermeldung vom Server zurück bekommst, dann musst du innerhalb des Response Headers nach dem Fehlercode schauen.
Damit Fehlerquellen einfacher gefunden werden können, wurden einige Fehlerfälle mit eindeutigen Error-Codes versehen. Diese Error-Codes werden zusätzlich zur Response im Header unter dem Knoten custom_response_code ausgegeben
Auflistung der Error-Codes
Error-Code
Beschreibung
102
Die angegebene Auftragsart konnte nicht gefunden werden
103
Der angegebene Auftrags-Identifier wurde bereits verwendet
104
Das Hauptkennzeichen des angegebenen Kennzeichens passt nicht mit dem StVA überein
105
Das StVA ist am gewünschten Zulassungstag geschlossen
106
Die angegebene Zweigstelle konnte nicht gefunden werden
109
Das gewünschte Dokument konnte in Verbindung mit dem angegebenen Auftrag nicht gefunden werdenBTW: Das System prüft auch auf "Schließungstage" innerhalb des StVA. Also die Regelung Zulassungsdatum = Heute +1 funktioniert nicht, da morgen Samstag ist. Hier kommt auch der "custom_response_code" 105 zurück.
-
Hallo Peter,
kannst du bitte in der API Dokumentation nachschauen, wie die Datums formatiert werden sollten und die Zeitstempel.
Du schreibst: ---registration_reference: FIN + now()--- darauswird etwa : TEXT08.05.2020 21:50.
Es ist aber für Api gar nicht üblich. Der Standard für timestamp sollte etwa so aussehen : YYYY-MM-DDThh:mm:ssZ oder YYYYMMDDThhmmssZ
Leo
-
Das ändere ich sofort, danke und nun machen wir beide erstmal wochende :-) Übrigens am 20.5. stelle ich unser Ninox Projekt im Webinar vor ( also ich darf, ich wurde gefragt :-) ) da reisse ich auchmal die gewaltige Datenbank an die dahinterhängt und mir diese Kopfschmerzen bereitet....
Vielen Dank für alles Leo!
Content aside
- vor 4 JahrenZuletzt aktiv
- 9Antworten
- 954Ansichten