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. |
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:
-
Klicken Sie in Swagger in der oberen rechten Ecke auf Autorisieren.
-
Geben Sie das Wort Bearer gefolgt von einem Leerzeichen und dem Token ein, das Sie vom Anmeldeendpunkt erhalten haben (Bearer <AccessToken>).
-
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.
KopierenClientWebSocket _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.
Kopierenthis.socket = new WebSocket(url, accessToken);