Technik:API-Gateway: Unterschied zwischen den Versionen

Aus CoPlanner 11
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 11: Zeile 11:
2.) In ApiGateway-Ordner in der Datei appsettings.json die Hosting-URL bzw. den Port festlegen (siehe Konfigurationsdateien)
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
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:  
:* <nowiki>https://localhost:4443/coplanner</nowiki> für den Coplanner Server  
:* <nowiki>https://localhost:4443/coplanner</nowiki> für den Coplanner Server  
:* <nowiki>https://localhost:4444/coplanner</nowiki> für ReportServer 1 und  
:* <nowiki>https://localhost:4444/coplanner</nowiki> für ReportServer 1 und  
Zeile 21: Zeile 21:


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





Version vom 30. März 2021, 15:11 Uhr

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:

  • 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.