IBM -Erweiterungen zur Spezifikation OpenAPI

Sie verwenden das Objekt x-ibm-configuration in Ihrer OpenAPI -Definitionsdatei, um Erweiterungen hinzuzufügen, die für IBM® API Connectspezifisch sind.

Die Erweiterung "x-ibm-configuration" weist die folgende Struktur auf:

x-ibm-configuration:
  enforced: enforced_boolean
  forceHttp500ForSoap11: forceHttp500ForSoap11_boolean
  compile-json-schemas: compile_json_schemas_boolean
  enforce-form-data-parameter: enforce_form_data_parameter_boolean
  phase: Phase
  testable: test_boolean
  cors:
    enabled: cors_boolean
  buffering: buffering_boolean
  activity-log:
      activity_logging_extension
  assembly:
    execute:
      - assembly_component
  gateway: gateway_type
  type: api_type
  properties:
      properties_extension
  catalogs:
      catalogs_extension

In der folgenden Tabelle sind die verschiedenen von API Connectverwendeten Erweiterungen aufgelistet, unabhängig davon, ob sie erforderlich sind, sowie eine Beschreibung ihrer Verwendung und ihres Verhaltens und ihres Typs.

Tabelle 1. IBM Erweiterungen
Erweiterung Erforderlich Beschreibung Typ
phase Nein Verwenden Sie die Erweiterung "phase", um den Reifegrad der API zu beschreiben. Diese kann die folgenden Werte annehmen:
  • identified: Die API befindet sich in einer frühen Konzeptphase und ist weder vollständig entworfen noch implementiert.
  • specified: Die API ist vollständig entworfen und hat einen internen Meilenstein erreicht, wurde jedoch noch nicht implementiert.
  • realized: Die API befindet sich in der Implementierungsphase.
Zeichenfolge
testable Nein Verwenden Sie die testable Erweiterung, um festzulegen, ob die API mit dem Testtool im Consumer Catalog getestet werden kann. boolesch
enforced Nein Verwenden Sie die Erweiterung enforced , um anzugeben, ob das API Connect -Gateway verwendet wird, um die API zu erzwingen.
  • true gibt an, dass das API Connect -Gateway verwendet wird, um die API zu erzwingen.
  • false gibt an, dass das API Connect -Gateway nicht zum Erzwingen der API verwendet wird.
boolesch
cors Nein Verwenden Sie die Erweiterung cors, um anzugeben, ob CORS-Zugriffssteuerung für die API verwendet wird. Die Erweiterung verfügt über eine Feld enabled, das ein boolescher Wert ist. Objekt (mit einem einzelnen Feld für einen booleschen Wert)
DataPower API Gateway
onlyactivity-log Nein Verwenden Sie die Erweiterung activity-log, um Ihre Protokollierungsvorgaben für die in Analytics gespeicherte API-Aktivität zu konfigurieren. Die Vorgaben, die Sie angeben, setzen die Standardeinstellungen zum Erfassen und Speichern von Details der API-Aktivität außer Kraft. Objekt
assembly Nein Verwenden Sie die Erweiterung assembly, um die Anwendung von Richtlinien und Logik auf eine API zu beschreiben. Sie enthält ein Feld execute, das ein Array von Richtlinien enthält, die der Reihe nach angewendet werden. Sie kann ein catch-Feld umfassen, das ein Array von abzufangenden Fehlersituationen enthält.

Informationen zur Verwendung des Felds execute finden Sie unter execute.

Informationen zur Verwendung des Feldes catchcatch “ finden Sie unter „catch“.

Objekt
gateway Nein Verwenden Sie die Erweiterung gateway, um anzugeben, welchen Typ von Gateway Sie verwenden möchten. Wenn Sie die DataPower® Gateway (v5 compatible) oder DataPower API Gatewayverwenden, muss sie eingeschlossen werden und einen der folgenden Werte annehmen:
  • datapower-gateway (DataPower Gateway (v5 compatible))
  • datapower-api-gateway (DataPower API Gateway)

Informationen zu den verschiedenen Arten von Gateways finden Sie unter API Connect Gateway-Typen.

Zeichenfolge
type Nein Die Erweiterung type weist einen der folgenden Werte auf:
  • rest
  • wsdl
properties Nein Verwenden Sie die Erweiterung properties, um Eigenschaften für die Verwendung in einer API zu definieren. Objekt ( Eigenschaften )
catalogs Nein Verwenden Sie die Erweiterung catalogs, um katalogspezifische Werte für in der Erweiterung properties definierte Eigenschaften zu definieren. Objekt ( Kataloge )
DataPower API Gateway
onlyforceHttp500ForSoap11 Nein Verwenden Sie die Erweiterung forceHttp500ForSoap11 , um einen Antwortcode 500 zu erzwingen, wenn bei einer SOAP-API 1.1 ein Fehler auftritt. Diese Eigenschaft funktioniert nur mit DataPower Fixpacks, die APAR IT46043 enthalten. boolesch
compile-json-schemas Nein Verwenden Sie diese Erweiterung, um die Vorkompilierung von JSON-Schemas während der Konfigurationsbereitstellung zu aktivieren. Wenn dieser Wert auf „true“ gesetzt ist, werden JSON-Schemas bei der Anwendung der neuen Konfiguration kompiliert und zwischengespeichert, sodass die Kompilierung bereits abgeschlossen und verfügbar ist, wenn die erste Nachricht verarbeitet wird. boolesch
buffering Nein Mit dieser Erweiterung können Sie festlegen, ob API-Anfragen und -Antworten vor der Verarbeitung zwischengespeichert werden sollen. Er aktiviert den Befehl message-buffering „ DataPower “
  • true: API-Anfragen und -Antworten vor der Verarbeitung zwischenspeichern. API-Anfragen und -Antworten werden als binäres Großobjekt (BLOB) gelesen.
  • false: Speichern Sie API-Anfragen und -Antworten vor der Verarbeitung nicht zwischen. API-Anfragen und -Antworten werden gestreamt. Nur ein asynchroner API-Aufruf kann die gestreamten Daten lesen. Wenn die Nachrichtenverarbeitung eine Analyse der Daten auf Nutzdatenebene erfordert, werden die Daten zwischengespeichert, um sie zu erfassen. Diese Einstellung ist der Standardwert.
boolesch
enforce-form-data-parameter Nein Dieser Befehl gibt an, ob der Parameter „formdata“ während des API-Routings aufgelöst und mit Daten gefüllt werden soll.
  • Wenn diese Option aktiviert ist und der API-Pfad Formulardaten konfiguriert, wird die Nutzlast als BLOB-Daten ausgewertet und die entsprechenden Felder werden während des Routings als Kontextvariablen gefüllt.
  • Wenn diese Option nicht aktiviert ist und kein erforderlicher Formularparameter angegeben wird, wird die Verarbeitung nicht als BLOB ausgewertet und der Parameter nicht ausgefüllt.
boolesch

Das folgende Beispiel zeigt den x-ibm-extension Abschnitt einer API, der durch API Connect[Name] erzwungen wird, sich im realisierten Zustand befindet, über das Testtool im Consumer Catalog getestet werden kann, über die Zugriffskontrolle „ CORS “ verfügt und eine einfache Assembly enthält, die eine „ URL “ aufruft und anschließend ein Feld aus der Anfrage oder Antwort schwärzt.

x-ibm-configuration:
  enforced: true
  phase: realized
  testable: true
  cors:
    enabled: true
  assembly:
    execute:
      - invoke:
          title: Example Invoke
          target-url: 'https://example.com/api'
          description: Example description
      - redact:
        actions:
          - action: redact
            from: 
              - request
              - response
            path: //*[@name='secondaryAddress']/*[@name='streetAddress']
  properties:
    ID:
      value: 1234
      description: An ID to be used for validating.
      encoded: false
  catalogs:
    Sandbox:
      properties:
        ID: 5678