0

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

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • iT_Support
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Peter,

    wie sieht den die http formel aus?

    Leo

    • iT_Support
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Meinst du meine json Anfrage? Lg Peter

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ja

    • iT_Support
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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 :-)

    • iT_Support
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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 werden

    BTW: 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. 

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • iT_Support
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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!