Technik:API-Gateway: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 27: | Zeile 27: | ||
==appsettings.json== | ==appsettings.json== | ||
===WebConfig=== | ===WebConfig=== | ||
:* JwtBearerIssuer: sollte nicht geändert werden | :* JwtBearerIssuer: sollte nicht geändert werden | ||
:* JwtBearerIssuerKey: sollte nicht geändert werden | :* JwtBearerIssuerKey: sollte nicht geändert werden | ||
===Kestrel=== | ===Kestrel=== | ||
Version vom 30. März 2021, 15:14 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
- JwtBearerIssuer: sollte nicht geändert werden
- JwtBearerIssuerKey: sollte nicht geändert werden
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.