Verwalten von LOB-spezifischen APIs für Tests und Integration
Die Produktdefinitionen-API stellt Endpunkte bereit, die zum Importieren, Visualisieren und Generieren von Code für Produkte ausgehend von den Advanced Product Designer-Produktvorlagen verwendet werden können. Diese APIs unterstützen Sie bei der Verwaltung Ihrer Produkttests und Produktintegration. Für die Erstellung von Produktmodellen empfiehlt Guidewire, direkt den Advanced Product Designer zu verwenden.
Importieren einer Produktvorlage über die API
Die Product Definition API bietet eine Reihe von Endpunkten, die zum Importieren eines Produkts aus einer Advanced Product Designer (APD)-Produktvorlage verwendet werden können.
| Endpunkt | Vorlagentyp | Eingabedateiformat |
|---|---|---|
/productdefinition/v1/import-template |
Eine APD-Produktvorlage | XML |
/productdefinition/v1/import-edition |
Eine als Produktausgabe importierte APD-Produktvorlage | XML |
/productdefinition/v1/import-xmind |
Eine XMind-Mind-Map, die zum Generieren einer APD-Produktvorlage verwendet werden kann | XMIND |
/productdefinition/v1/import-json |
Eine APD-Produktvorlage | JSON |
Im Anforderungstext muss Content-Type auf multipart/form-data gesetzt sein und die Produktvorlagendatei muss über den Parameter content übergeben werden.
Das folgende Beispiel zeigt einen teilweisen Anforderungsheader für einen Aufruf, der eine BPP-PetBusinessOwners-template.xml-Datei importiert:
> POST /pc/rest/productdefinition/v1/import-template HTTP/1.1
> Accept-Encoding: gzip,deflate
> Authorization: Basic c3U6Z3c=
> Connection: Keep-Alive
> Content-Type: multipart/form-data; boundary=--------iSl9mNZkwq31beJX5v
> Transfer-Encoding: chunked
> --------iSl9mNZkwq31beJX5v
> Content-Type: text/xml
> Content-Disposition: form-data; content="BPP-PetBusinessOwners-template.xml"
(content of BPP-PetBusinessOwners-template.xml)
> --------iSl9mNZkwq31beJX5v--
Eine erfolgreiche Anforderung gibt den folgenden Antworttext zurück:
{
"data": {
"attributes": {
"id": "Petbusinessowners"
}
}
}
Standardmäßig wird die importierte Produktvorlage als visualisiertes Produkt in PolicyCenter geladen, und ihre spartenspezifischen APIs sind für die Prüfung aktiviert.
Produktausgaben
Eine Produktausgabe definiert Produktmodelleigenschaften und Unterklauselbeziehungen für eine Produktlinie. Mithilfe von Produktausgaben lassen sich Änderungen an Produktmodelleigenschaften vornehmen, nachdem ein Produkt in Produktion gegangen ist. Eine Produktausgabe ist als APD-Vorlage verpackt und kann wie oben beschrieben importiert werden, sofern das Basisprodukt bereits installiert ist.
Zum Aktivieren der Produktausgabe kann ein Aufrufer eine POST-Anforderung an den Endpunkt /productDefinition/v1/lines/{lineId}/activate-editions senden. Der Anforderungstext muss eine Eigenschaft lineId enthalten, welche die Produktausgabekennung enthält:
{
"data": {
"attributes": {
"lineId": "Petbusinessowners-2"
}
}
}
Abfragen von Produktvorlagen
Autorisierte interne Benutzer können nach Produktvorlagen abfragen. Autorisierte Aufrufer können die folgenden Endpunkte verwenden, um Produktvorlagenressourcen abzurufen:
/productdefinition/v1/product-templates/productdefinition/v1/product-templates/{productId}
Beispiel: Eine ProductTemplate-Ressource für ein Pet Business Owners-Produkt wird wie folgt angezeigt:
{
"data": {
"attributes": {
"abbreviation": "PBP",
"codeIdentifier": "PetBusinessOwners",
"description": "Pet Business Owners",
"enabled": true,
"id": "Petbusinessowners",
"name": "Petbusinessowners",
"productAccountType": {
"code": "Any",
"name": "Any"
}
},
. . .
"links": {
"codegen": {
"href": "/productdefinition/v1/product-templates/Petbusinessowners/codegen",
"methods": [
"post"
]
},
"disable": {
"href": "/productdefinition/v1/product-templates/Petbusinessowners/disable",
"methods": [
"post"
]
},
"self": {
"href": "/productdefinition/v1/product-templates/Petbusinessowners",
"methods": [
"delete",
"get"
]
}
}
}
}
Umschalten des aktiven Zustands eines visualisierten Produkts
Beim Importieren einer Produktvorlage wird ein Produkt standardmäßig im visualisierten Modus erstellt und die zugehörige API für Abfragen aktiviert. Die Product Definition API bietet Endpunkte zum Umschalten dieses Zustands:
/productdefinition/v1/product-templates/{productId}/enable/productdefinition/v1/product-templates/{productId}/disable
Der Anforderungstext für jeden Aufruf ist derselbe. Er enthält eine productId-Eigenschaft, deren Wert der Produktbezeichner ist.
{
"data": {
"attributes": {
"productId": "Petbusinessowners"
}
}
}
Der Antworttext enthält die zugehörige ProductTemplate-Ressource. Die Eigenschaft enabled zeigt einen Booleschen Wert an, der angibt, ob das Produkt aktiviert oder deaktiviert ist.
{
"data": {
"attributes": {
"abbreviation": "PBP",
"codeIdentifier": "PetBusinessOwners",
"description": "Pet Business Owners",
"enabled": false,
"id": "Petbusinessowners",
"name": "Petbusinessowners",
. . .
},
. . .
}
}
Generieren von Code aus einem visualisierten Produkt
In PolicyCenter können berechtigte Benutzer mehrere Codetypen aus einem visualisierten Produkt generieren.
| Codetyp | Beschreibung | Installierter Speicherort in PolicyCenter |
|---|---|---|
| Basisproduktcode | Alle für die Aktivierung der vollständigen Produktfunktion in PolicyCenter erforderlichen Codes |
|
| API-Code | API-bezogener Code (Swagger, Schema, Mapper, Updater und Ressourcendateien) | /pc/app-pc/pc-lob-{lobId} |
| API-Testcode | API-Teststubs, die das Karate-Testframework verwenden (diese Tests müssen vom Kunden gewartet werden und gelten nicht als Produkt) | /pc/apitestbench/customer-api/src/test/java/gw/pc/customer/api/lob/{lobId} |
| Extern | Ein Funktionsstub, der zum Einhängen von Codeerweiterungen verwendet werden kann | /pc/app-pc/pc-apd-genlob-content/config/extensions/ |
({lobId} bezieht sich auf die in Spartennamen verwendete dreistellige Abkürzung, z. B. „BOP“)
Um Code aus einem visualisierten Produkt zu generieren, können autorisierte Aufrufer eine POST-Anforderung an den /productDefinition/v1/product-templates/{productId}/codegen-Endpunkt senden.
Der Anforderungstext kann die Eigenschaft generationMode enthalten, die auf einen der folgenden Werte gesetzt ist:
ALL: API und Produktbasiscode generierenAPI_CODE: Nur Code für die API generierenBASE_CODE: Nur Produktbasiscode generierenEXTERNAL: Nur Erweiterungscode generieren
Standardmäßig ist dieser Wert auf „ALL“ gesetzt.
Der folgende Codeblock zeigt einen Anforderungstext zum Generieren des API-Codes für ein Pet Business Owners-Produkt an:
{
"data": {
"attributes": {
"productId": "Petbusinessowners"
"generationMode": "API_CODE"
}
}
}
Löschen einer Produktvorlage
Zum Löschen einer Produktvorlage können autorisierte Aufrufer einen POST für Geschäftsaktionen an den Endpunkt /productDefinition/v1/product-templates/{productId}/delete senden.