Desarrollo de módulos personalizados: utilización de ganchos

Puede utilizar enganches en módulos personalizados para modificar el comportamiento del núcleo Drupal u otros módulos en el Portal del desarrollador.

Los módulos personalizados le permiten ampliar la funcionalidad del sitio del Portal del desarrollador . Para obtener más información sobre cómo crear módulos personalizados, consulte Desarrollo de módulos personalizados: una introducción a las herramientas Drupal para el desarrollo PHPy Desarrollo de módulos personalizados: antecedentes y requisitos previos.

Los ganchos son una de las formas en que los módulos personalizados pueden utilizar para interactuar con otros módulos y con subsistemas principales Drupal . Las secciones siguientes proporcionan una visión general de los enganches y una lista de los enganches específicos de IBM® API Connect .

Importante:
  • No tiene permiso para incluir ningún módulo IBM API Connect dentro de los módulos personalizados que cree. Además, la edición directa de cualquier tema, módulo, módulo incluido o núcleo Drupal de API Connect en el sistema de archivos no está permitida o soportada, ya que las versiones editadas de estos archivos se sobrescriben cuando se instala un fixpack o iFix .
  • Todo el desarrollo personalizado es su responsabilidad. Aunque el uso de módulos y temas personalizados está soportado, IBM API Connect no proporciona soporte en su desarrollo o modificación.

Acerca de los enganches

Los enganches definen funciones que alteran el comportamiento del núcleo Drupal . Así que una forma para que los módulos personalizados alteren estas funciones, es utilizar ganchos. Los enganches son funciones con un nombre especial que define un módulo (esto se conoce como implementación del enganche), estos enganches se descubren y se llaman en momentos específicos para modificar o añadir al comportamiento base o a los datos (esto se conoce como invocación del enganche). Cada enganche tiene un nombre (por ejemplo: hook_batch_alter()), un conjunto definido de parámetros y un valor de retorno definido. Los módulos personalizados pueden implementar ganchos definidos por el núcleo Drupal , por API Connecto por otros módulos con los que interactúan. Los módulos personalizados también pueden definir sus propios enganches para permitir que otros módulos interactúen con ellos. Para obtener más información, consulte Visión general de los enganches en Drupal.org.

Nota: Si escribe una función de implementación de enganche, la función no debe emitir errores o excepciones, o utilizar mensajes de registro de nivel alert . Los errores, excepciones y mensajes de registro de nivel alert pueden interrumpir todo el proceso en el código padre. Por ejemplo, si escribe un enganche que llama a un servidor externo cuando se actualiza una aplicación, es necesario que el código tenga un manejo de errores para manejar el servidor que no se encuentra o que no devuelve el resultado esperado. De lo contrario, Drupal detiene el análisis de la función y es posible que la aplicación no se actualice correctamente. Puede hacer que el webhook y el análisis de instantáneas terminen anormalmente dejando el portal en un estado incoherente.

Para obtener una lista de todos los ganchos disponibles en el núcleo Drupal y cómo implementarlos en el módulo personalizado, consulte Drupal API Hooks.

Para obtener una lista de todos los enganches específicos de API Connect , consulte la sección siguiente.

Utilización de ganchos en módulos personalizados

Para invocar un enganche, debe añadir una función al archivo .module en el módulo personalizado y añadir un prefijo al enganche con el nombre del módulo personalizado. Por ejemplo, cuando se utiliza un enganche API Connect en un módulo personalizado, debe sustituir la palabra hook en el nombre del enganche por el nombre del módulo personalizado. Por ejemplo:
hook_apic_app_create
debe estar referenciado en el módulo personalizado como:
moduleName_apic_app_create

Enganches específicos de API Connect

Las tablas siguientes listan los enganches específicos del API Connect Portal del desarrollador. Cada sección contiene un enlace al archivo .php en el repositorio de API Connect Developer Portal en GitHub para estos enganches. Este archivo contiene ejemplos de cómo puede utilizar los enganches en los módulos.
Enganches sobre aplicaciones
En la tabla siguiente se listan los enganches relacionados con aplicaciones en el Portal del desarrollador. Para ver ejemplos de cómo utilizar los ganchos de aplicación, consulte apic_app/apic_app.api.php en GitHub.
Tabla 1. Enganches sobre aplicaciones
Nombre de enganche Descripción
hook_apic_app_create Se desencadena cuando se crea una aplicación.
hook_apic_app_update Se desencadena cuando se actualiza una aplicación.
hook_apic_app_pre_delete Se desencadena cuando se suprime una aplicación, antes de que se haya producido la supresión del nodo o la cascada.
hook_apic_app_post_delete Se desencadena cuando se suprime una aplicación, después de que se haya producido la supresión del nodo o la cascada.
hook_apic_app_promote Se desencadena cuando se promociona una aplicación.
hook_apic_app_creds_create Se desencadena cuando se crea un nuevo conjunto de credenciales para una aplicación.
hook_apic_app_creds_update Se desencadena cuando se actualiza un conjunto de credenciales para una aplicación.
hook_apic_app_creds_delete Se desencadena cuando se suprime un conjunto de credenciales para una aplicación.
hook_apic_app_subscribe Se desencadena cuando se crea una suscripción.
hook_apic_app_migrate Se desencadena cuando se migra una suscripción a un nuevo plan.
hook_apic_app_unsubscribe Se desencadena cuando se anula la suscripción de una aplicación de un plan.
hook_apic_app_image_create Se desencadena cuando se crea una imagen de aplicación personalizada.
hook_apic_app_image_delete Se desencadena cuando se suprime una imagen de aplicación personalizada.
hook_apic_app_clientid_reset Se desencadena cuando se restablece un ID de cliente de credenciales.
hook_apic_app_clientsecret_reset Se desencadena cuando se restablece un secreto de cliente de credenciales.
hook_apic_app_modify_getplaceholderimage_alter Modifique la imagen de marcador de posición de aplicación proporcionada en \Drupal\apic_app\Application::getPlaceholderImage(). Se puede utilizar para definir una imagen de marcador de posición específica para utilizarla cuando el consumidor no ha cargado su propia imagen personalizada para su aplicación.
hook_apic_app_modify_getimageforapp_alter Modifique la imagen de marcador de posición de aplicación proporcionada en \Drupal\apic_app\Application::getImageForApp(). Se puede utilizar para proporcionar una vía de acceso completa a una imagen específica para utilizarla para una aplicación que altera temporalmente cualquier imagen personalizada que se haya podido cargar.
hook_apic_app_modify_client_id_reset_alter Modifique el ID de cliente proporcionado por Gestor de API cuando se restablezca el ID.
hook_apic_app_modify_client_secret_reset_alter Modifique el secreto de cliente proporcionado por Gestor de API cuando se restablezca el secreto.
hook_apic_app_modify_create_alter Modifique las credenciales proporcionadas por el Gestor de API cuando se cree una nueva aplicación.
hook_apic_app_modify_credentials_create_alter Modifique las credenciales proporcionadas por el Gestor de API cuando se creen nuevas credenciales.
Enganches sobre organizaciones de consumidores
En la tabla siguiente se listan los enganches relacionados con organizaciones de consumidores en el Portal del desarrollador. Para ver ejemplos de cómo utilizar los ganchos de la organización de consumidores, consulte consumerorg/consumerorg.api.php en GitHub.
Tabla 2. Enganches sobre organizaciones de consumidores
Nombre de enganche Descripción
hook_consumerorg_create Se desencadena cuando se crea una organización de consumidores.
hook_consumerorg_update Se desencadena cuando se actualiza una organización de consumidores.
hook_consumerorg_pre_delete Se desencadena cuando se suprime una organización de consumidores, antes de que se haya producido la supresión del nodo o la cascada.
hook_consumerorg_post_delete Se desencadena cuando se suprime una organización de consumidores, después de que se haya producido la supresión del nodo o la cascada.
hook_consumerorg_payment_method_create_alter Se desencadena para permitir la modificación del formulario de creación del método de pago.
hook_consumerorg_myorg_tabs_alter Se desencadena para permitir que se añadan más pestañas a la página my organization .
Enganches sobre las API
En la tabla siguiente se listan los enganches relacionados con las API en el Portal del desarrollador. Para ver ejemplos de cómo utilizar los ganchos de la API, consulte apic_api/apic_api.api.php en GitHub.
Tabla 3. Enganches sobre las API
Nombre de enganche Descripción
hook_apic_api_create Se desencadena cuando se crea una API.
hook_apic_api_update Se desencadena cuando se actualiza una API.
hook_apic_api_delete Se desencadena cuando se suprime una API.
Enganches sobre productos
En la tabla siguiente se listan los enganches relacionados con productos en el Portal del desarrollador. Para ver ejemplos de cómo utilizar los ganchos Product, consulte product/product.api.php en GitHub.
Tabla 4. Enganches sobre productos
Nombre de enganche Descripción
hook_product_create Se desencadena cuando se crea un producto.
hook_product_update Se desencadena cuando se actualiza un producto.
hook_product_delete Se desencadena cuando se suprime un producto.
Otros enganches de IBM API Connect
La tabla siguiente lista los enganches que pueden ser para otros usos.
Tabla 5. Otros enganches de APIC
Nombre de enganche Descripción
hook_ibm_apim_subscription_wizard_summary_alter Se desencadena para permitir la modificación de la página de resumen del asistente de suscripción.