0

Ninox-DB zu Ninox-DB per REST-Schnittstelle

Hallo liebe Ninox-Gemeinde!

Ich versuche gerade per REST-API von einer Ninox-Datenbank auf eine andere Ninox-Datenbank zuzugreifen - bisher ohne konkreten Anwendungsfall, einfach um zu wissen ob und wie es geht.

Ich habe mir dazu einen API-Key generiert und den "Beispielcode" aus dem Ninox-Handbuch -> Ninox-API -> Ninox HTTP-Aufrufe mit Authentifizierung genutzt:

let response := http("GET", "https://api.ninoxdb.de/v1/teams/xxxxxxxxxxxxxx/databases/xxxxxxxxxxx/tables/Artikel/records", null, {
Authorization: "Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"});
if response.error then
  alert(text(response.error))
else
  alert(text(response.result))
end

(Den Key sowie IDs für Team und Datenbank habe ich hier mal durch X maskiert.) Der Code klappt nur leider nicht - es kommt die Fehlermeldung "Request failed: error - Unauthorized". Auch dann, wenn ich z. B. nur die Teams abfrage.

Wenn ich mit der gleichen URL und dem API-Key mit einem externen Programm (Paw) arbeite bekomme ich ein korrektes Result. Hat wer eine Idee, was ich falsch mache oder warum das nicht funktioniert?

VG Frank

11 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Frank,

    Versuch mal so:

    let response :=do as server

    http("GET", "https://api.ninoxdb.de/v1/teams/xxxxxxxxxxxxxx/databases/xxxxxxxxxxx/tables/Artikel/records", null, {
    Authorization: "Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"})

    end;
    if response.error then
      alert(text(response.error))
    else
      alert(text(response.result))
    end

    Leo

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    vielen Dank schon mal für deine Hilfe - klappt aber leider auch nicht. Dafür ist die Fehlermeldung kürzer: "Unauthorized"

    VG Frank

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Frank, 

    Wenn ich so richtig sehe, hast du Header und Body vertauscht. Am besten:

    ---

    let Methode:="GET";

    let URL:= "https://api.ninoxdb.de/v1/teams/xxxxxxxxxxxxxx/databases/xxxxxxxxxxx/tables/Artikel/records";

    let Header:={Authorization:"Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"};

    let Body:={};

    let responce:=do as Server

    http(Methode,URL,Header,Body)

    end;

    if response.error then
      alert(text(response.error))
    else
      alert(text(response.result))
    end

    ---

    Leo

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Guten Morgen Leo,

    prima - genau das war es. Ich habe das jetzt aber nur im Aufruf vertauscht:

    let response := http("GET", "https://api.ninoxdb.de/v1/teams/xxxxxxxxxxxxxx/databases/xxxxxxxxxxx/tables/Artikel/records", {
    Authorization: "Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}, null);
    if response.error then
      alert(text(response.error))
    else
      alert(text(response.result))
    end

    So klappt das dann und ich komme erst mal weiter, vielen Dank!

    VG Frank

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Das alles ist mir noch zu kompliziert im Moment... aber spannend es zu verfolgen. Schön wäre es, wenn wenigstens von Ninox zu Ninox eine einfache Schnittstelle da wäre die man ohne Programmierkünste miteinander verbinden könnte.

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Mir geht es ja gerade mal darum zu schauen, ob da eine einfache Verbindung geschaffen und Daten zwischen Datenbanken praxistauglich ausgetauscht werden können. Evtl. kann man ja die Komplexität in Funktionen kapseln und dann recht komfortabel auf Daten zugreifen. Mals sehen... :)

    VG Frank

    • Digital Mover
    • DirkNey
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen
    mein Name ist Dirk und ich stehe vor demselben Problem und würde mich gerne dieser DIskussion anschließen. Mir geht es wie Pyromixer. Ich suche einen einfache weg wie ich 2 Ninoxdatenbanken vernetzen kann und wie genau das geht. (Ich bin noch blutiger Anfänger in solchen Themen) 
    Akutell vesuche ich die geplanten Budgets mit meiner Projektmanagment Datenbank über das Feld "Planbudget" zu verknüpfen. AUf Grund der Komplexität beider Datenbanken ist eine Zusammenlegung nicht sinnvoll, da es die Gefahr birgt zu unübersichtlich zu werden.
    Meine Frage jetzt an Euch. Wie genau schaffe ich eine Verknüpfung?
    LG Dirk

    • Birger_H
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Eine gute Gelegenheit mit unseren Experten darüber zu sprechen wäre einer unserer API-Workshops. Entweder Freitags um 10:00 Uhr (vorranging auf Deutsch) oder Montags um 17:00 Uhr (auf English).
    Anmelden können Sie sich für die Workshops hier:
    Freitag: https://zoom.us/webinar/register/WN_NDOVEq1uT_20mzSdpznlWQ
    Montag: https://zoom.us/webinar/register/WN_tNnu2wwPSHWtwZQvj3egFw

    Informationen zur API-Integration mit Ninox finden Sie hier:
    https://ninoxdb.de/de/manual/ninox-api/api-einfuehrung

     

    Birger

    • T_Urbach
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ich habe folgenden Quellcode versucht:

    let response := do as server
    http("GET", "https://api.ninoxdb.de/v1/teams", {
    Authorization: "Bearer xxx",
    'Content-Type': "application/json"
    }, null)
    end;

    bekomme aber nur ein leeres Resultset. Wo ist mein Denkfehler?

    • Customer Service Manager
    • maja
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Das sollte mit der API und z. B. Integromat oder Zapier möglich sein.
    Eine gute Gelegenheit direkte Hilfe zu Ihrem Anliegen zu erhalten, sind unsere API-Webinare.
    Bitte heben Sie dort (virtuell) die Hand, dann können wir Sie live unterstützen.

    Bitte informieren Sie sich über den Zeitplan und die Inhalte unseres nächsten Webinars hier: 
    https://ninox.com/de/webinar

    Über die Schaltfläche "Registrieren" können Sie direkt am Webinar teilnehmen oder sich dafür anmelden.
    Vielen Dank.

    • T_Bartzsch
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ich fahre seit einiger Zeit mit folgendem Code ganz gut:

    let auth := {
    Authorization: "Bearer DEIN-API-KEY",
    'Content-Type': "application/json"
    };
    let response := do as server
    http("GET/POST/usw", "https://api.ninoxdb.de/v1/teams/98sd9f87sd9f7sdf/databases/s9d8f79s8d7f9s8d7f/tables, auth, {body})
    end;

    Find ich schön übersichtlich. Leider ist im Handbuch body und auth vertauscht, da gabs Anfangs auch verwirrung ...