3.2 KiB
Simply CPQ Buildtime Server
Dieser Ordner enthält alle relevanten Dateien und Informationen zum Simply CPQ Buildtime Server. Dieser dient der Pflege von Produktdaten, Regeln, Konditionen und Administration der Simply CPQ Anwendung durch die Bereitstellung des Pflege-Servers.
Open Source Bibliotheken, die hier genutzt werden
Viper
Viper dient zum Laden uns Auswerten von Config-Dateien. In diesem Case werden die HTTP-Servereinstellungen und die Datenbankverbindung ausgewertet.
go get github.com/spf13/viper
PostgreSQL
Die Datenbank des Systems ist in dem Datenbankmanagementsystem PostgreSQL abgelegt. Zum einen braucht es eine Installation des Systems, auf dem die Software Zugriff hat und zum anderen benötigt das System die entsprechenden PostgreSQL Treiber für Go.
go get github.com/lib/pq
Gin Gonic
Webserver Library zum Routing der API.
go get -u github.com/gin-gonic/gin
Einrichten des Servers:
Server API
Die Server-API baut auf HTTP und auf REST auf. Antworten werden im JSON Format gesendet,ebenso, wie neu anzulegende Daten oder zu aktualisierende Daten.
Languages
Dieses Paket dient der Verwaltung der zur Verfügung stehenden Sprachen für die Stammdaten-Übersetzungen.
hole alle Sprachen
get: http://server:port/languages
Dieser Request liefert alle Sprachen im JSON Format. Hier ein beispielhaftes Ergebnis:
[
{
"id": 1,
"locale": "de_DE",
"language": "german"
},
{
"id": 2,
"locale": "en_EN",
"language": "english (EN)"
},
{
"id": 3,
"locale": "en_US",
"language": "english (US)"
},
{
"id": 5,
"locale": "fr-FR",
"language": "france"
},
{
"id": 6,
"locale": "it-IT",
"language": "italy"
}
]
Hole die Sprache mit einer bestimmten ID
get: http://server:port/language/id
z.B.
get: http://server:port/language/5
Dieser Request liefert die Sprache im JSON Format mit der angegebenen ID im Pfad. Hier ein beispielhaftes Ergebnis:
{
"id": 5,
"locale": "fr-FR",
"language": "france"
}
Der Request mit der ID 4 in diesem Beispiel liefert einen Fehler, da eine Sprache mit der ID 4 nicht existiert:
get: http://server:port/language/4
Aktualisiere eine Sprache
put: http://server:port/language
inhalt: application/json
z.B.:
{
"id": 1,
"locale": "de-DE",
"language": "german"
}
Alter Datensatz mit falschem locale:
{
"id": 1,
"locale": "de_DE",
"language": "german"
}
Neuer, korrigierter Datensatz:
{
"id": 1,
"locale": "de-DE",
"language": "german"
}
Anlegen einer neuen Sprache
put: http://server:port/language
inhalt: application/json
z.B.:
{
"id": 1,
"locale": "de-de",
"language": "german"
}
Neuer Datensatz:
{
"id": 7,
"locale": "de-de",
"language": "german"
}
ACHTUNG: Die "id" des Datensatzes im Body wurde nicht genutzt. Sie wird bei der Neuanlage von der Datenbank bestimmt.
Löschen eines Datensatzes
delete: http://server:port/language/id
z.B.:
delete: http://server:port/language/7
Der Beispielrequest löscht den im vorherigen Abschnit angelegten Datensatz wieder.