Zugriff auf die Web API

Die Web API ist in zwei Hauptteile unterteilt:

  • Die HTTPS REST API wird für Anfragen wie Authentifizierung oder Ressourcen verwendet.

  • Die WebSocket API wird für verbundene Anfragen wie Videostreaming oder PLC-Daten verwendet.

HTTPS REST API

Die HTTPS REST API ist mit Swagger dokumentiert. Sie können die Dokumentation über https://<server-ip>:13333/swagger/index.html (zum Beispiel: https://127.0.0.1:13333/swagger/index.html) in jedem modernen Browser (Chrome, Safari, Firefox und Edge) aufrufen.

Die G-Core Web API wird als Service installiert und enthält eine Swagger-API, über die Entwickler die Beschreibung der vollständigen Schnittstelle abrufen können (https://localhost:13333/swagger/index.html).

Sie können einen HTTP-Webclient erstellen und auf diese GET- und POST-Befehle zugreifen, oder Sie können eine c#-Anwendung erstellen und die eingeschlossene HTTP-Funktion in einer Klasse verwenden.

WebSocket API

Die WebSocket API verwendet das WebSocket-Protokoll auf der Grundlage einer TCP-Verbindung.

Die entsprechende WebSocket-API-Dokumentation kann über folgende URLs aufgerufen werden:

  • Streaming: https://<server-ip>:13333/asyncapi/media/ui/index.html

  • PLC: https://<server-ip>:13333/asyncapi/plc/ui/index.html

Auf diesen Seiten finden Sie die notwendige Dokumentation für die Verwendung der WebSocket-API-Endpunkte.

Authentifizierung

Verwenden Sie den Authentifizierungsendpunkt /api/1/Login, um sich bei der G-Core Web API zu authentifizieren. Der G-Core Benutzername und das Passwort werden zur Authentifizierung verwendet.

Authentifizierung in Swagger

Sie können die Authentifizierung direkt in der Swagger-Benutzeroberfläche durchführen. Das Ergebnis ist ein Tupel, das Sie anschließend in allen anderen zu authentifizierenden Anfragen verwenden sollten. Das Tupel besteht aus einem AccessToken und einem RefreshToken.

Token

Gültigkeit

Verwendung

AccessToken

Gültig für einen Zeitraum von 15 Minuten.

Bei HTTP-Anfragen kann das Token im Authorization-Header verwendet werden.
Zum Beispiel: "Autorisierung: Bearer <AccessToken>"

RefreshToken

Gültig für 7 Tage.

Jedes RefreshToken ist nur einmal gültig.

Das Token kann verwendet werden, um neue Zugangstoken über den Endpunkt /api/1/ RefreshLogin zu erlangen, der ebenfalls ein Tupel aus AccessToken und RefreshToken zurückgibt.

Der Authentifizierungsendpunkt /api/1/Login ist in den Standardeinstellungen auf eine bestimmte Anzahl von Anfragen begrenzt. Pro Client-IP sind 100 Anfragen pro 10 Minuten zulässig. Diese Einstellung kann in der appsettings.json Datei im Abschnitt IpRateLimiting konfiguriert werden.

Geben Sie in Swagger das Token ein, um die Authentifizierung durchzuführen:

  1. Klicken Sie in Swagger in der oberen rechten Ecke auf Autorisieren.

  2. Geben Sie das Wort Bearer gefolgt von einem Leerzeichen und dem Token ein, das Sie vom Anmeldeendpunkt erhalten haben (Bearer <AccessToken>).

  3. Dann können Sie jeden anderen Endpunkt in Swagger ausprobieren.

→ Diese Authentifizierung ist auch für die WebSocket-API erforderlich.

Authentifizierung der WebSocket-API

Es gibt zwei unterstützte Methoden zur Authentifizierung der WebSocket-API:

  • Sie können das Token in einem Autorisierungs-Cookie festlegen.

    Kopieren
    ClientWebSocket _webSocket = new ClientWebSocket();
    var token = "...";
    _webSocket.Options.Cookies = new System.Net.CookieContainer();
    _webSocket.Options.Cookies.Add(new Uri(String.Format("ws://{0}/", host)), new System.Net.Cookie("Authorization", token));
    _webSocket.ConnectAsync(
            new Uri(String.Format("ws://{0}/api/1/stream/video?MediaChannelIdentifier={1}", host, mediaChannel)), cancellationToken).Wait();
  • Sie können das Token wie im Protokoll-Header einstellen.

    Kopieren
    this.socket = new WebSocket(url, accessToken);