Creación de prototipos de una aplicación similar a Trello utilizando la API REST de WordPress

Publicado: 2017-02-03

Hemos promocionado repetidamente la API REST de WordPress desde su anuncio, como un paso hacia una nueva era para la plataforma. En esta publicación, aprovecharemos todo lo que hemos aprendido en las últimas semanas, utilizando un ejemplo que muestra cuán poderosa y versátil puede ser la API REST de WordPress.

Dado que la interoperabilidad entre diferentes idiomas se encuentra en el corazón de lo que es REST, vamos a diseñar un prototipo, una aplicación similar a Trello, utilizando buenas taxonomías y publicaciones de WordPress, ¡pero con un giro! De esta forma, esperamos demostrar cómo se puede utilizar WordPress como plataforma de desarrollo.

Trello es una exitosa aplicación de gestión de proyectos que utiliza el paradigma Kanban, originalmente popularizado por Toyota en la década de 1980. Los proyectos se representan como tableros , que contienen columnas llenas de tarjetas correspondientes a tareas. Las tarjetas se mueven de una columna a la siguiente, hasta que están en el estado Listo ( por ejemplo, de Todo a En proceso a Listo ). Este flujo se denomina flujo de valor. Las dos ideas clave detrás de Kanban son a) visualizar su trabajo yb) limitar su trabajo actual en progreso. En el caso de Trello, el trabajo se visualiza mediante tarjetas gráficas. Las columnas también pueden tener capacidades máximas, lo que significa que puede colocar una cantidad específica de tareas en una columna y no más que eso. Por ejemplo, la columna Hacer a continuación tiene una capacidad de 2.

Diseño de aplicaciones

Diseñaremos una versión mínima y básica del paradigma Kanban como prueba de concepto. Las principales funcionalidades son las siguientes:

  1. Los usuarios pueden crear/actualizar/eliminar nuevas columnas.
  2. Los usuarios pueden crear/actualizar/eliminar nuevas tarjetas que se encuentran en una columna en particular.

La idea básica de cómo se implementará todo esto es alucinantemente simple usando la API REST:

  • Las columnas Kanban se representan como categorías de WordPress .
  • Las capacidades de las columnas se pueden colocar como números enteros en las descripciones de las categorías .
  • Tarjetas Kanban como publicaciones que se asignan a una categoría .
  • Mover una tarjeta de una columna a otra significa simplemente cambiar la categoría correspondiente de la publicación.

Siguiendo la idea de "iterar temprano y con frecuencia" de la creación rápida de prototipos, las API de Kanban que se presentan a continuación son simplemente borradores. Las funciones se extrapolan de las dos funcionalidades principales enumeradas anteriormente, y la asignación de activos de WordPress de columnas a categorías y tarjetas a publicaciones. No hay duda de que surgirán problemas nuevos y desafiantes una vez que comience la implementación real del prototipo, ¡pero los siguientes borradores son suficientes para comenzar!

API de columnas Kanban

La siguiente lista documenta las funciones que manipularán las columnas Kanban, junto con sus tipos de parámetros. Las columnas se representarán como categorías de WordPress y su número de capacidad se agregará en la descripción de la categoría. Esta lista no documenta ningún valor de retorno, ya que para este prototipo será suficiente el objeto de respuesta JSON de WordPress.

Aloje su sitio web con Pressidium

GARANTÍA DE DEVOLUCIÓN DE DINERO DE 60 DÍAS

VER NUESTROS PLANES

Sin embargo, todas las funciones devolverán verdadero o falso para indicar si la operación se completó con éxito o si algo salió mal. En el último caso, la causa real se puede encontrar dentro del objeto de respuesta JSON, pero, en general, no se proporcionará ningún control de error real para el prototipo de prueba de concepto.

• create_new_col(cname:cadena, cap:int)
Cree una nueva columna Kanban llamada cname con un límite de número entero que represente la capacidad.

Recurso API de WordPress: Crear una nueva categoría

Esto creará una nueva categoría y luego agregará el número entero de capacidad a la descripción de la categoría.

change_col_name(antiguo nombre:cadena, nuevo nombre:cadena)
Cambie el nombre de una columna Kanban de oldname a newname .

Recurso API de WordPress: Editar una categoría

Esto simplemente cambiará el nombre de la categoría.

change_col_cap(newcap:int )
Cambie la capacidad de la columna a newcap.

Recurso API de WordPress: Editar una categoría

Esto cambiará la descripción de la categoría correspondiente para agregar el nuevo número de capacidad.

delete_col(nombrecol:cadena)
Elimina la columna denominada colname.

Recurso API de WordPress: eliminar una categoría

Esto simplemente elimina la categoría correspondiente a la columna. Al hacer esto, efectivamente dejarás "huérfanas" las cartas debajo de esa columna. Dependerá de usted decidir cómo implementar esta eliminación. Por ejemplo, a) eliminar una columna significa eliminar todo lo que hay debajo de esa columna o b) eliminar "suavemente" tal vez cambiando el nombre de las tarjetas debajo de ella como _del_<categoría>, para que pueda recuperarlas en el futuro.

API de tarjetas Kanban

La lista a continuación es la misma, pero para las tarjetas Kanban. Las tarjetas se representarán como publicaciones de WordPress, utilizando efectivamente el título de la publicación para describir la tarea a realizar. El contenido de la publicación se puede utilizar como un contenedor adicional para las notas.

• crear_nueva_tarjeta(cname:cadena)

Crea una nueva tarjeta llamada cname.

Esto creará una nueva publicación sin contenido, pero como no pertenece a ninguna categoría, no debería ser visible para el usuario.

• crear_nueva_tarjeta(cname:cadena, c:cadena)

Crear una nueva publicación con título cname y contenido c.

Lo mismo que arriba, pero la tarjeta también se crea con contenido.

• create_new_card(cname:string, cont:string, colname:string)

Cree una nueva publicación con el título cname , content cont , en la categoría colname.

Recurso API de WordPress: Crear una nueva publicación

• add_card_col(cname:cadena, colname:cadena)

Agrega una tarjeta con el nombre cname a la columna con el nombre colname.

Recurso API de WordPress: Editar una publicación

• move_card_col(cname:cadena, colname:cadena)

Mueve la tarjeta con el nombre cname debajo de la columna denominada colname. Esto debería eliminar la categoría anterior de la publicación antes de agregar la nueva.

Recurso API de WordPress: Editar una publicación

• delete_card(cname:cadena)
Elimina una tarjeta con el nombre cname.

Recurso API de WordPress: eliminar una publicación

Esto realiza una eliminación destructiva o no, dependiendo de si ha habilitado la papelera en su blog de WordPress.

Integridad de los datos

Ahora que hemos asignado nuestras funciones a las llamadas y activos de la API de WordPress, debemos asegurarnos de que nuestros datos se mantengan consistentes. Por ejemplo, una columna Kanban que tiene una capacidad de 2, no puede contener más de 2 tarjetas. Una tarjeta no puede estar en dos columnas al mismo tiempo. Cuando una tarjeta se mueve a otra columna, debe eliminarse de donde estaba. WordPress, sin embargo, no sabe nada sobre estas restricciones, por lo que nuestra aplicación debe verificarlas y aplicarlas en cada operación de escritura.

Dado que se trata de un prototipo, no todos los casos extremos serán evidentes desde la fase de diseño. Estos aparecerán inevitablemente durante la implementación de cada función.

Más trabajo

Hasta ahora solo hemos hablado de las API que impulsarán nuestra aplicación Kanban utilizando los recursos de WordPress de diferentes maneras. Nuestro prototipo sería seriamente deficiente si consistiera solo en un montón de API de backend sin frontend que la gente realmente pudiera usar. Una vez más, aquí vemos la versatilidad de las API REST, ya que nadie dice cómo debe hacerlo. Podría usar algo como Bootstrap, o escribir una buena GUI 'ole en Java; literalmente no hay límite para lo que puede usar.

Nuestro prototipo solo admite un tablero Kanban, es decir, un proyecto, vinculado a su instancia de WordPress. Probablemente sea aceptable para una prueba de concepto, pero obviamente inaceptable para un producto final. Una solución sería mapear los conceptos de Kanban a la taxonomía de WordPress de una manera diferente y más eficiente, que admita múltiples tableros Kanban e incluso más funciones, como la colaboración en equipo.

¡El desarrollo de WordPress se ha vuelto realmente emocionante!