---
url: 'https://metadrop.net/es/articulos/form-api-drupalcon-praga'
title: 'Form API en la DrupalCon Praga'
author: 'Ricardo Sanz'
date: '2022-09-27T20:18:49+00:00'
updated: '2026-02-12T15:45:02+00:00'
type: article
summary: 'La Form API es un potente sistema de Drupal para crear todo tipo de formularios. Sin embargo, dada su complejidad, puede resultar complicado entenderla completamente, y es fácil acabar luchando contra ella cuando se construyen formularios complejos. Este artículo presenta la charla "The Form API Workflow API" de la DrupalCon de Praga de 2022, que ayuda a entender este workflow clave de Drupal.'
tags:
  - 'Drupal Planet'
  - 'Form API'
  - DrupalCon
published: true
og:
  determiner: Automatic
  site_name: Metadrop
  'image:alt': 'Form API en la DrupalCon Praga'
  street_address: 'Calle Manuel Luna, 12, 3 Dcha'
  locality: Madrid
  region: Madrid
  postal_code: '28020'
  country_name: España
  email: hola@metadrop.net
  phone_number: '910053180'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      '@type': Article
      '@id': 'https://metadrop.net/es/articulos/form-api-drupalcon-praga#article'
      name: 'Form API en la DrupalCon Praga'
      headline: 'Form API en la DrupalCon Praga'
      description: "La Form API es un potente sistema de Drupal para crear todo tipo de formularios. Sin embargo, dada su complejidad, puede resultar complicado entenderla completamente, y es fácil acabar luchando contra ella cuando se construyen formularios complejos. Este artículo presenta la charla\_\"The Form API Workflow API\" de la\_ DrupalCon de Praga de 2022, que ayuda a entender este\_workflow\_clave de Drupal."
      about:
        - 'Form API'
        - DrupalCon
      datePublished: '2022-10-04T10:30:49+0200'
      dateModified: '2026-02-12T16:45:02+0100'
      author:
        '@type': Person
        name: 'Ricardo Sanz'
      publisher:
        '@type': Organization
        '@id': 'https://metadrop.net/#organization'
      mainEntityOfPage: 'https://metadrop.net/es/articulos/form-api-drupalcon-praga'
    -
      '@type': Organization
      '@id': 'https://metadrop.net/#organization'
      url: 'https://metadrop.net/'
      name: Metadrop
      sameAs:
        - 'https://www.drupal.org/metadrop'
        - 'https://twitter.com/metadrop'
        - 'https://asociaciondrupal.es/partner/metadrop'
        - 'https://www.linkedin.com/company/metadrop'
      logo:
        '@type': ImageObject
        url: 'https://metadrop.net/themes/custom/mdrop_radix/logo-metadrop-500-500.jpg'
        width: '500'
        height: '500'
    -
      '@type': ItemPage
      '@id': 'https://metadrop.net/es/articulos/form-api-drupalcon-praga'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Inicio
            item: 'https://metadrop.net/es'
          -
            '@type': ListItem
            position: 2
            name: 'Artículos expertos sobre Drupal y tecnología'
            item: 'https://metadrop.net/es/articulos'
      publisher:
        '@type': Organization
        '@id': 'https://metadrop.net/#organization'
---
 1. [Artículos](https://metadrop.net/es/articulos)
 
  

# Form API en la DrupalCon Praga

Martes 04 de Octubre de 2022

 

 



La Form API es un potente sistema de Drupal para crear todo tipo de formularios. Sin embargo, dada su complejidad, puede resultar complicado entenderla completamente, y es fácil acabar luchando contra ella cuando se construyen formularios complejos. Este artículo presenta la charla "The Form API Workflow API" de la DrupalCon de Praga de 2022, que ayuda a entender este *workflow* clave de Drupal.



   



Este año mi [sesión sobre el *workflow* de la Form API fue seleccionada para la DrupalCon Praga](https://events.drupal.org/prague2022/sessions/form-api-workflow "Página de la sesión "The Form API Workflow API" en la web de la DrupalCon 2022 en Praga"). La verdad es que alegré mucho cuando recibí el mensaje diciéndome que había sido seleccionada, ya que para ser honesto tengo que reconocer que he propuesto la sesión al menos cuatro veces (entre los Drupal Dev Days y a las anteriores DrupalCon). Desde que hice el [diagrama del *workflow* de la Form API de Drupal 7 ](https://www.drupal.org/docs/7/api/form-api/form-api-internal-workflow-illustration#s-drupal-7 "Ilustración del workflow de la Form API de Drupal 7")hace años, quería crear una nueva para Drupal 8, pero no encontraba el momento. Decidí presentar una charla sobre el tema a un evento Drupal para forzarme a hacerlo. Innegablemente, tener una fecha límite siempre es una gran ayuda para por fin hacer algo que quieres hacer desde hace tiempo.

## El diagrama de la Form API

 

 

Aquí puedes ver la [versión en alta resolución](https://metadrop.net/sites/default/files/2022-09/fapi_workflow_complete_v2_md.png "The Drupal Form API Workflow Illustration on high resolution") del diagrama.

Un poco complejo, ¿verdad? Pero una vez que empiezas a familiarizarte con el diagrama deja de ser tan abrumador. Vamos a ello.

**Primero** veamos la leyenda. Hay **seis tipos diferentes de cajas rectangulares**, y cada una representa un tipo diferente de paso o acción en el *workflow:*

- **Punto de entrada**: es el punto inicial donde se inicia el flujo. Cuando Drupal necesita procesar un formulario el proceso empieza en este punto.
- **Core**: son los pasos estándar del core de Drupal. Cada caja representa alguna acción que Drupal realiza sobre del formulario, como añadir un valor, guardarlo en caché o determinar algo sobre el formulario como qué *handler* será ejecutado durante la validación del formulario.
- **Hooks**: solo hay una caja de este tipo, y es el punto donde Drupal llama a los [*hooks*](https://drupalize.me/tutorial/what-are-hooks "Artículo "What are hooks?" en drupalize.me") de alteración del formulario. La mayoría de las modificaciones de estructura y comportamiento de un formulario se realizan durante las llamadas a hooks de la Form API, aunque las *callbacks* también permiten modificaciones en estos sentidos.
- **Callbacks**: estas cajas son donde Drupal llama a diferentes *callbacks*, como el *handler* de validación y otras funciones relacionadas que puedan ser adjuntada al formulario en ciertos puntos (funciones de procesado de elementos, por ejemplo). Estos *callbacks* permiten una mayor personalización del comportamiento y la estructura del formulario.
- **Fragmento de diagrama**: cada caja de este tipo representa una parte determinada del *workflow* de la Form API que se puede encontrar en otra parte del diagrama. Es una forma de presentar el diagrama de forma más ordenada . Cuando encuentres una de estas cajas solo tienes que buscar el panel de color gris-marrón claro con el mismo nombre de la caja. El nombre de cada panel está escrito en vertical en la zona inferior del lado derecho.
- **Punto de salida**: son los puntos por los que el flujo de la Form API pueden terminar el proceso.

**En segundo lugar**, ¿ves los elementos azules con forma de diamante? Cada uno es una **decisión**, una comprobación que hace Drupal para decidir qué camino seguir.

Cada paso está conectando otros pasos o decisiones mediante flechas, **mostrando los diferentes caminos del** ***worklflow***. Juntos, los pasos y las flechas, describen el flujo de forma completa.

Un caso especial son los dos paneles de color marfil y las flechas punteadas. **Representan llamadas recursivas**. La Form API recorre el array `$form` durante la construcción y la validación del formulario, y esta es la forma de expresar estas llamadas recursivas.

 

Quedan los paneles de color gris-marrón claro. Es una forma de agrupar pasos bajo un nombre para poder ser **referenciados por las cajas de fragmentos de diagrama** comentadas anteriormente. 

 

Por último, faltan las cajas con borde punteado rojo. El diagrama puede aún ser confuso: las etiquetas de las cajas y las decisiones pueden no ser suficiente para obtener toda la información relevante de cada parte del diagrama. Es por eso que he añadido estas cajas punteadas, que no son más que **comentarios que clarifican aspectos relevantes** que no son obvios a la simple observación del diagrama.

 

El [diagrama también están disponible en Drupal.org](https://www.drupal.org/docs/drupal-apis/form-api/form-api-internal-workflow# "Diagrama del workflow de la Form API de Drupal en Drupal.org"), en la sección de documentación de la Form API.

Hay un [repositorio](https://github.com/Metadrop/drupal-form-api-workflow-diagram "Repositorio del diagrama del workflow de la Form API de Drupal") abierto a colaboraciones con el diagrama en varios formatos, incluyendo una versión editable.

## La charla

Hay mucha más información en las diapositivas de la sesión. En la charla, explico cómo crear formularios web complejos aprovechando la Form API, los detalles de las diferentes etapas del flujo de trabajo y algunos consejos que deberías conocer al tratar con formularios.

Espero que esto ayude a quien desarrolle a entender el flujo de la Form API y facilitar el desarrollo de formularios, especialmente aquellos de naturaleza compleja.

Las [diapositivas están disponibles en GitHub](https://rsanzante.github.io/drupalconprague-2022-form-api-workflow/ "Las diapositivas de la charla").



[Form API](https://metadrop.net/es/articulos?text=Form%20API)

[DrupalCon](https://metadrop.net/es/articulos?text=DrupalCon)

 

- Ricardo Sanz
    
    CTO
 
[Desarrollo de módulos e integraciones de terceros con Drupal](https://metadrop.net/es/servicios/drupal/integraciones " See Desarrollo de módulos e integraciones de terceros con Drupal")

Metadrop conecta Drupal con tu CRM, ERP, pasarela de pago y stack de marketing — Salesforce, Microsoft Dynamics, TPV virtual de BBVA, Workday y Keepeek — mediante módulos personalizados y APIs seguras y conformes con el RGPD.

 

 Ver más