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

/pc/app-pc/pc-apd-genlob-content/config/extensions/

/pc/app-pc/pc-apd-genlob-content/config/locale/

/pc/app-pc/pc-apd-genlob-content/config/lookuptables/

/pc/app-pc/pc-apd-genlob-content/config/resources/

/pc/app-pc/pc-apd-genlob-content/config/web/

/pc/app-pc/pc-apd-genlob-content/displaynames/

/pc/app-pc/pc-apd-genlob-content/gsrc/

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 generieren
  • API_CODE: Nur Code für die API generieren
  • BASE_CODE: Nur Produktbasiscode generieren
  • EXTERNAL: 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.