Hallo Nils,
ich hab selbst noch nichts mit der WebAPI gemacht, nutze auch nicht den Smart Client.
Mir ist die Authentifizierung über die Tobit Server ein Dorn im Auge - man muss dafür auch das lokale Benutzerkonto mit einem Chayns Konto verknüpfen.
Ich hab mir das aber eben mal angeschaut.
Grundsätzlich kannst Du die REST API Doku über die Adresse Deines Servers aufrufen:
https://<externe-serveradresse>:8443/_docs/index.html#/
Die GraphQL API Doku und Playground findest Du unter
https://<externe-serveradresse>:8443/v1.0/graph/_playground
Ein JWT ist ein Sicherheitstoken der nach dem Login mit Benutzername und Passwort erzeugt. Bei einer API macht man normalerweise eine Authentifizierung mittels Benutzername und Passwort und bekommt dann vom API Service einen JWT geliefert. Den schreibt man dann bei jeder Anfrage in den Header in der Form Authorization: Bearer <token>
Eine Beschreibung dazu findest Du z.B. hier:
https://www.predic8.de/bearer-…isierung-api-security.htm
Um an Deinen JWT Token zu kommen, musst Du Dich mit Deiner chaynsID auf der Tobit Seite anmelden, dann rufst Du die Web Developer Konsole im Browser auf (Rechtsklick > Untersuchen) und wechselst auf die Konsole. Dort gibst Du
console.log(chayns.env.user.tobitAccessToken)
ein und bekommst den aktuellen Token zurück. Mit dem kannst Du die Authorisierung an den Dokus vornehmen, z.B. in der Swagger Doku über den Button Authorize, dort trägst Du dann Bearer <token> als Wert ein.
Anschließend kannst Du z.b. bei ServerInfo auf Try out und dann auf Execute klicken und solltest entsprechende Daten angezeigt bekommen.
Bei mir erscheint aber eine Meldung, dass ich mich mit einem Konto anmelden müsse, welches zu einer der aufgeführten SiteIDs passt, wovon eine die ID meiner Davidinstallation ist...denke da ist mit meinem Account was nicht ganz richtig.
Wichtig ist auch zu verstehen, dass die Doku wirklich nur eine Doku zum testen ist - für eine Nutzung der API in einer Applikation muss man entsprechenden Code für die Nutzung einer REST oder GraphQL API programmieren und die Abfrage der benötigten Endpunkte bzw. Abfragen implementieren.
Allerdings stellt sich jetzt die Frage, wie der Endpunkt für die Authorisierung innerhalb einer Applikation lautet...dort müsste man genau das gleiche machen, nämlich Benutzername und Passwort übergeben um den aktuellen JWT zu bekommen und diesen dann als Header (Authorization: Bearer <token>) bei den folgenden Anfragen zu übergeben. Dazu habe ich leider nichts in der Doku gefunden und so spontan auch keine Idee...
Da der JWT nur eine Gültigkeit von drei Stunden hat, reicht es auch nicht, diesen einmalig auszulesen und in der Anwendung zu hinterlegen.
Viele Grüße
Jens