Entwicklung angepasster Module: Verwendung von Hooks

Sie können Hooks in angepassten Modulen verwenden, um das Verhalten des Drupal -Kerns oder anderer Module in Ihrem Developer Portalzu ändern.

Mit angepassten Modulen können Sie die Funktionalität Ihrer Developer Portal -Site erweitern. Weitere Informationen zum Erstellen angepasster Module finden Sie unter Custom module development: an introduction to Drupal tools for PHP developmentund unter Custom module development: background and prerequisites.

Hooks sind eine der Möglichkeiten, die von angepassten Modulen für die Interaktion mit anderen Modulen und mit Drupal-Kern-Subsystemen verwendet werden können. Die folgenden Abschnitte enthalten eine Übersicht über Hooks und eine Liste der IBM® API Connect -spezifischen Hooks.

Wichtig:
  • Sie sind nicht berechtigt, IBM API Connect -Module in von Ihnen erstellte angepasste Module einzuschließen. Außerdem ist die direkte Bearbeitung von API Connect -Motiven, -Modulen, enthaltenen Modulen oder Drupal -Kernen im Dateisystem nicht zulässig und wird nicht unterstützt, da bearbeitete Versionen dieser Dateien überschrieben werden, wenn ein Fixpack oder iFix installiert wird.
  • Die gesamte kundenspezifische Entwicklung liegt in Ihrer Verantwortung. Obwohl die Verwendung angepasster Module und Motive unterstützt wird, bietet IBM API Connect keine Unterstützung für deren Entwicklung oder Änderung.

Informationen zu Hooks

Hooks definieren Funktionen, die das Verhalten des Drupal-Kerns ändern. Eine Möglichkeit für angepasste Module, diese Funktionen zu ändern, besteht folglich darin, Hooks zu verwenden. Hooks sind speziell benannte Funktionen, die ein Modul definiert (die sog. Hook-Implementierung). Diese Hooks werden dann erkannt und zu bestimmten Zeiten aufgerufen, um das Basisverhalten oder die Daten zu ändern oder zu ergänzen (das sog. Aufrufen des Hooks). Jeder Hook hat einen Namen (zum Beispiel hook_batch_alter()), eine definierte Gruppe von Parametern und einen definierten Rückgabewert. Ihre angepassten Module können Hooks implementieren, die vom Drupal -Kern, von API Connectoder von anderen Modulen definiert werden, mit denen sie interagieren. Ihre angepassten Module können auch eigene Hooks definieren, um andere Module mit ihnen interagieren zu lassen. Weitere Informationen finden Sie unter Understanding Hooks unter Drupal.org.

Hinweis: Wenn Sie eine Hook-Implementierungsfunktion schreiben, darf die Funktion weder Fehler oder Ausnahmebedingungen auslösen noch Protokollnachrichten auf alert -Ebene verwenden. Fehler, Ausnahmen und Protokollnachrichten der Stufe alert können die gesamte Verarbeitung im übergeordneten Code zum Erliegen bringen. Wenn Sie beispielsweise einen Hook erstellen, der bei der Aktualisierung einer Anwendung einen externen Server aufruft, muss der Code über Möglichkeiten einer Fehlerbehandlung verfügen, wenn der Server nicht gefunden wird oder nicht das erwartete Ergebnis zurückgegeben wird. Andernfalls stoppt Drupal das Parsing der Funktion und die Anwendung wird unter Umständen nicht ordnungsgemäß aktualisiert. Dies kann wiederum dazu führen, dass das Parsing von Webhooks und Momentaufnahmen abgebrochen wird und das Portal damit einen inkonsistenten Status erhält.

Eine Liste aller Hooks, die im Drupal -Kern verfügbar sind, und deren Implementierung in Ihrem angepassten Modul finden Sie unter Drupal API Hooks.

Eine Liste aller API Connect -spezifischen Hooks finden Sie im folgenden Abschnitt.

Verwenden von Hooks in angepassten Modulen

Um einen Hook aufzurufen, müssen Sie eine Funktion zu Ihrer .module-Datei in Ihrem angepassten Modul hinzufügen und dem Hook den Namen Ihres angepassten Moduls voranstellen. Wenn Sie beispielsweise einen API Connect -Hook in einem angepassten Modul verwenden, müssen Sie das Wort hook im Hooknamen durch den Namen Ihres angepassten Moduls ersetzen. Beispiel:
hook_apic_app_create
sollte in Ihrem angepassten Modul wie folgt referenziert werden:
moduleName_apic_app_create

API Connect -spezifische Hooks

In den folgenden Tabellen sind die Hooks aufgelistet, die für API Connect Developer Portalspezifisch sind. Jeder Abschnitt enthält einen Link zur Datei .php im API Connect Developer Portal -Repository auf GitHub für diese Hooks. Diese Datei enthält Beispiele dafür, wie Sie die Hooks in Ihren Modulen verwenden können.
Hooks für Anwendungen
In der folgenden Tabelle sind die Hooks aufgelistet, die sich auf Anwendungen im Developer Portalbeziehen. Beispiele für die Verwendung von Anwendungshaken finden Sie unter apic_app/apic_app.api.php auf GitHub.
Tabelle 1. Hooks für Anwendungen
Hookname Beschreibung
hook_apic_app_create Wird beim Erstellen einer Anwendung ausgelöst.
hook_apic_app_update Wird beim Aktualisieren einer Anwendung ausgelöst.
hook_apic_app_pre_delete Wird ausgelöst, wenn eine Anwendung gelöscht wird, vor dem Löschen von Knoten oder beim Auftreten einer Kaskade.
hook_apic_app_post_delete Wird ausgelöst, wenn eine Anwendung gelöscht wird, nach dem Löschen von Knoten oder beim Auftreten einer Kaskade.
hook_apic_app_promote Wird beim Hochstufen einer Anwendung ausgelöst.
hook_apic_app_creds_create Wird ausgelöst, wenn eine neue Gruppe von Berechtigungsnachweisen für eine Anwendung erstellt wird.
hook_apic_app_creds_update Wird ausgelöst, wenn eine Gruppe von Berechtigungsnachweisen für eine Anwendung aktualisiert wird.
hook_apic_app_creds_delete Wird ausgelöst, wenn eine Gruppe von Berechtigungsnachweisen für eine Anwendung gelöscht wird.
hook_apic_app_subscribe Wird ausgelöst, wenn ein Abonnement erstellt wird.
hook_apic_app_migrate Wird ausgelöst, wenn ein Abonnement in einen neuen Plan migriert wird.
hook_apic_app_unsubscribe Wird ausgelöst, wenn das Abonnement eines Plans für eine Anwendung rückgängig gemacht wird.
hook_apic_app_image_create Wird ausgelöst, wenn ein Image einer angepassten Anwendung erstellt wird.
hook_apic_app_image_delete Wird ausgelöst, wenn ein Image einer angepassten Anwendung gelöscht wird.
hook_apic_app_clientid_reset Wird ausgelöst, wenn eine Berechtigungsnachweis-Client-ID zurückgesetzt wird.
hook_apic_app_clientsecret_reset Wird ausgelöst, wenn ein geheimer Clientschlüssel für einen Berechtigungsnachweis zurückgesetzt wird.
hook_apic_app_modify_getplaceholderimage_alter Ändern des Image für den Anwendungs-Platzhalter unter \Drupal\apic_app\Application::getPlaceholderImage(). Kann verwendet werden, um ein bestimmtes Platzhalter-Image zu definieren, das verwendet werden soll, wenn der Konsument kein eigenes angepasstes Image für seine Anwendung hochgeladen hat.
hook_apic_app_modify_getimageforapp_alter Ändern des Image für den Anwendungs-Platzhalter unter \Drupal\apic_app\Application::getImageForApp(). Kann verwendet werden, um einen vollständigen Pfad zu einem bestimmten Image anzugeben, das für eine Anwendung verwendet werden soll und ein eventuell hochgeladenes angepasstes Image überschreibt.
hook_apic_app_modify_client_id_reset_alter Ändern Sie die Client-ID, die von API Manager bereitgestellt wird, wenn die ID zurückgesetzt wird.
hook_apic_app_modify_client_secret_reset_alter Ändern Sie den geheimen Clientschlüssel, der von API Manager bereitgestellt wird, wenn der geheime Schlüssel zurückgesetzt wird.
hook_apic_app_modify_create_alter Ändern Sie die Berechtigungsnachweise, die von API Manager bereitgestellt wurden, wenn eine neue Anwendung erstellt wird.
hook_apic_app_modify_credentials_create_alter Ändern Sie die von API Manager bereitgestellten Berechtigungsnachweise, wenn neue Berechtigungsnachweise erstellt werden.
Hooks für Konsumentenorganisationen
In der folgenden Tabelle sind die Hooks aufgelistet, die sich auf Konsumentenorganisationen im Developer Portalbeziehen. Beispiele für die Verwendung von Hooks für Verbraucherorganisationen finden Sie unter consumerorg/consumerorg.api.php auf GitHub.
Tabelle 2. Hooks für Konsumentenorganisationen
Hookname Beschreibung
hook_consumerorg_create Wird ausgelöst, wenn eine Konsumentenorganisation erstellt wird.
hook_consumerorg_update Wird ausgelöst, wenn eine Konsumentenorganisation aktualisiert wird.
hook_consumerorg_pre_delete Wird ausgelöst, wenn eine Konsumentenorganisation gelöscht wird, vor dem Löschen von Knoten oder beim Auftreten einer Kaskade.
hook_consumerorg_post_delete Wird ausgelöst, wenn eine Konsumentenorganisation gelöscht wird, nach dem Löschen von Knoten oder beim Auftreten einer Kaskade.
hook_consumerorg_payment_method_create_alter Wird ausgelöst, um eine Änderung des Formulars zur Erstellung von Zahlungsmethoden zu ermöglichen.
hook_consumerorg_myorg_tabs_alter Ausgelöst, damit der Seite my organization weitere Registerkarten hinzugefügt werden können.
Hooks für APIs
In der folgenden Tabelle sind die Hooks aufgelistet, die sich auf APIs im Developer Portalbeziehen. Beispiele für die Verwendung von API-Hooks finden Sie unter apic_api/apic_api.api.php auf GitHub.
Tabelle 3. Hooks für APIs
Hookname Beschreibung
hook_apic_api_create Wird ausgelöst, wenn eine API erstellt wird.
hook_apic_api_update Wird ausgelöst, wenn eine API aktualisiert wird.
hook_apic_api_delete Wird ausgelöst, wenn eine API gelöscht wird.
Hooks für Produkte
In der folgenden Tabelle sind die Hooks aufgelistet, die sich auf Produkte im Developer Portalbeziehen. Beispiele für die Verwendung von Produkt-Hooks finden Sie unter product/product.api.php auf GitHub.
Tabelle 4. Hooks für Produkte
Hookname Beschreibung
hook_product_create Wird ausgelöst, wenn ein Produkt erstellt wird.
hook_product_update Wird ausgelöst, wenn ein Produkt aktualisiert wird.
hook_product_delete Wird ausgelöst, wenn ein Produkt gelöscht wird.
Andere IBM API Connect Hooks
In der folgenden Tabelle sind die Hooks aufgelistet, die zu anderen Zwecken verwendet werden können.
Tabelle 5. Weitere APIC-Hooks
Hookname Beschreibung
hook_ibm_apim_subscription_wizard_summary_alter Wird ausgelöst, um eine Änderung der Übersichtsseite des Abonnementassistenten zuzulassen.