Technik:API-Gateway

Aus CoPlanner 11
Version vom 30. März 2021, 11:26 Uhr von Admin (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „__TOC__ Derzeit noch nicht verfügbar. Über das API-Gateway soll z.B. ein CopServer mit zwei Reportserver anbinden können. =Einrichtung= 1.) Rest.Client-…“)

Zur Navigation springenZur Suche springen

Derzeit noch nicht verfügbar.

Über das API-Gateway soll z.B. ein CopServer mit zwei Reportserver anbinden können.


Einrichtung

1.) Rest.Client-Ordner aus dem Serververzeichnis in das ApiGateway-Verzeichnis kopieren. 2.) In ApiGateway-Ordner in der Datei appsettings.json die Hosting-URL bzw. den Port festlegen (siehe Konfigurationsdateien) 3.) In ApiGateway-Ordner in der Datei ocelot.json werden die Routen für die dahinterliegenden Services definiert. Dabei sind die Standardrouten, welche angepasst werden müssen: 4

  • https://localhost:4443/coplanner für den Coplanner Server
  • https://localhost:4444/coplanner für ReportServer 1 und
  • https://localhost:4445/coplanner für ReportServer 2.

Sollten diese unter anderen Ports betrieben werden, sind entsprechend Anpassungen notwendig.


Zwei ReportServer kann man anlegen, indem der ReportServer-Ordner kopiert und mit einer angepassten Konfiguration gestartet wird.

Reportserver und die Clients sollten sich dann direkt auf die URL des API-Gateways verbinden und nicht direkt auf den Server.


Konfigurationsdateien

appsettings.json

WebConfig

  • EnableSwagger: steuert, ob der Swagger verfügbar ist
  • JwtBearerIssuer: sollte nicht geändert werden
  • JwtBearerIssuerKey: sollte nicht geändert werden
  • EnableResponseCompression: Möglichkeit, um die Response Komprimierung zu deaktivieren, sofern das erforderlich ist.

Kestrel

  • Endpoints: Hier wird definiert, wie auf das Service zugegriffen wird und sofern https verwendet wird, welches Zertifikat verwendet wird.

Beispiele:

Verwendung bei nur http:

Http": {
  "Url": "http://+:4448"
}

Verwendung, wenn das Zertifikat in einem Verzeichnis abgelegt wird (muss nicht installiert werden):

"HttpsInlineCertFile": {
 "Url": "https://+:4448",
 "Certificate": {
    "Path": ".\MeinZertifikat.pfx",
    "Password": "MeinPasswort"
     }
}

Verwendung, wenn das Zertifikat in einem Zertifikatsspeicher liegt:

"HttpsInlineCertStore": {
 "Url": "https://+:4448",
 "Certificate": {
    "Subject": "myservername.coplanner.com",
    "Store": "Root",
    "Location": "LocalMachine",
    "AllowInvalid": "false"
     }
}

ocelot.json

Hier werden die Routen angepasst.

  • DownstreamScheme: gibt an, ob per http oder https zugegriffen wird
  • DownstreamPathTemplate: hier wird definiert, wie die URL hinter <DownstreamScheme>://<Host>:<Port> weitergeht. In der Standardkonfiguration hier, wird davon ausgegangen, dass die WebAppUrl des Servers <nowiki>https://localhost:4443/coplanner ist. Ist das /coplanner in der WebAppUrl nicht verwendet, so muss es hier aus den DownStreamPathTemplate entfernt werden.
  • Host: Hostname unter dem das Service erreichbar ist
  • Port: Port unter dem das Service erreichbar ist

z.B.:

"DownstreamPathTemplate": "/coplanner/api/v1.0/commands/{url}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
   "Host": "servername.coplanner.com",
   "Port": 4443
}


Gibt es Routen, wie den Reportserver, bei dem wir mehr als eine Instanz haben, wird das folgendermaßen angegeben:

    // reports
    {
      "DownstreamPathTemplate": "/coplanner/api/v1.0/reports/{everything}",
      "DownstreamScheme": "https",
      "DownstreamHostAndPorts": [
        {
          "Host": "servername.coplanner.com",
          "Port": 4444
        },
        {
          "Host": "servername.coplanner.com",
          "Port": 4445
        }
      ],

NLog.Server.config bzw. NLog.Service.config

Prinzipiell kann hier mehr angepasst werden, aber die grundlegenden Eigenschaften:

  • logDirectory: Verzeichnis ohne den Dateinamen, wo hingeloggt werden soll
  • fileName: Hier kann man den Dateinamen anpassen oder wenn man möchte auch den gesamten Pfad
  • archiveAboveSize: gibt an, ab welcher Dateigröße eine neue Datei geschrieben wird. Der Standard von 10000000 entspricht 10 MB.

SvrConfig.xml

Wenn mehrere Reportserver vorhanden sind, dann wird die ReportServerUrl hier nicht angegeben.