Prototypage d'une application de type Trello à l'aide de l'API WordPress REST

Publié: 2017-02-03

Nous avons vanté à plusieurs reprises l'API REST de WordPress depuis son annonce, comme un pas vers une nouvelle ère pour la plate-forme. Dans cet article, nous allons tirer parti de tout ce que nous avons appris au cours des dernières semaines, en utilisant un exemple qui montre à quel point l'API WordPress REST peut être puissante et polyvalente.

Étant donné que l'interopérabilité entre différents langages est au cœur de ce qu'est REST, nous allons concevoir un prototype d'application de type Trello, en utilisant de bonnes taxonomies et messages WordPress mais avec une touche ! De cette manière, nous espérons démontrer comment WordPress peut être utilisé comme plateforme de développement.

Trello est une application de gestion de projet réussie utilisant le paradigme Kanban, popularisé à l'origine par Toyota dans les années 1980. Les projets sont représentés sous forme de tableaux , qui contiennent des colonnes remplies de cartes correspondant aux tâches. Les cartes se déplacent d'une colonne à l'autre, jusqu'à ce qu'elles soient dans un état Done ( par exemple, de Todo à Doing à Done). Ce flux est appelé flux de valeur. Les deux idées clés derrière Kanban sont de a) visualiser votre travail et b) limiter votre travail en cours actuel. Dans le cas de Trello, le travail est visualisé à l'aide de cartes graphiques. Les colonnes peuvent également avoir des capacités maximales, ce qui signifie que vous pouvez placer un nombre spécifique de tâches dans une colonne et pas plus que cela. Par exemple, la colonne Doing ci-dessous a une capacité de 2.

Conception d'applications

Nous concevrons une version minimale et dépouillée du paradigme Kanban en tant que preuve de concept. Les principales fonctionnalités sont les suivantes :

  1. Les utilisateurs peuvent créer/mettre à jour/supprimer de nouvelles colonnes.
  2. Les utilisateurs peuvent créer/mettre à jour/supprimer de nouvelles cartes qui se trouvent sous une colonne particulière.

L'idée de base de la façon dont tout cela va être implémenté est incroyablement simple en utilisant l'API REST :

  • Les colonnes Kanban sont représentées sous forme de catégories WordPress .
  • Les capacités de colonne peuvent être placées sous forme de nombres entiers dans les descriptions de catégories .
  • Cartes Kanban en tant que messages affectés à une catégorie .
  • Déplacer une carte d'une colonne à une autre signifie simplement changer la catégorie correspondante du message.

Suivant l'idée « itérer tôt et souvent » du prototypage rapide, les API Kanban présentées ci-dessous ne sont que des brouillons. Les fonctions sont extrapolées à partir des deux fonctionnalités principales listées précédemment, et du mappage des actifs WordPress des colonnes aux catégories et des cartes aux articles. Il ne fait aucun doute que de nouveaux problèmes difficiles surgiront une fois que la mise en œuvre effective du prototype commencera, mais les ébauches suivantes nous suffisent pour commencer !

API des colonnes Kanban

La liste ci-dessous documente les fonctions qui manipuleront les colonnes Kanban, ainsi que leurs types de paramètres. Les colonnes seront représentées sous forme de catégories WordPress et leur numéro de capacité sera ajouté dans la description de la catégorie. Cette liste ne documente aucune valeur de retour, car pour ce prototype, l'objet de réponse JSON de WordPress suffira.

Hébergez votre site web avec Pressidium

GARANTIE DE REMBOURSEMENT DE 60 JOURS

VOIR NOS FORFAITS

Cependant, toutes les fonctions renverront true ou false pour indiquer si l'opération s'est terminée avec succès ou si quelque chose s'est mal passé. Dans ce dernier cas, la cause réelle peut être trouvée dans l'objet de réponse JSON, mais en général, aucun contrôle d'erreur réel ne sera provisionné pour le prototype de preuve de concept.

• create_new_col(cname:string, cap:int)
Créez une nouvelle colonne Kanban nommée cname avec une limite de nombre entier représentant la capacité.

Ressource API WordPress : Créer une nouvelle catégorie

Cela créera une nouvelle catégorie, puis ajoutera le nombre entier de capacité à la description de la catégorie.

change_col_name(anciennom :chaîne, nouveaunom :chaîne)
Modifiez le nom d'une colonne Kanban de oldname à newname .

Ressource API WordPress : modifier une catégorie

Cela changera simplement le nom de la catégorie.

change_col_cap(newcap:int )
Modifiez la capacité de la colonne en newcap.

Ressource API WordPress : modifier une catégorie

Cela modifiera la description de la catégorie correspondante pour ajouter le nouveau numéro de capacité.

delete_col(colname:string)
Supprime la colonne nommée colname.

Ressource API WordPress : Supprimer une catégorie

Cela supprime simplement la catégorie correspondant à la colonne. En faisant cela, vous « orphelinez » efficacement les cartes sous cette colonne. Ce sera à vous de décider comment mettre en œuvre cette suppression. Par exemple, soit a) supprimer une colonne signifie supprimer tout ce qui se trouve sous cette colonne, soit b) supprimer "en douceur" en renommant peut-être les cartes sous celle-ci en _del_<category>, afin que vous puissiez les annuler à l'avenir.

API des cartes Kanban

La liste ci-dessous est la même, mais pour les cartes Kanban. Les cartes seront représentées sous forme de publications WordPress, utilisant efficacement le titre de la publication pour décrire la tâche à accomplir. Le contenu de la publication peut être utilisé comme conteneur supplémentaire pour les notes.

• create_new_card(cname:string)

Crée une nouvelle carte nommée cname.

Cela créera un nouveau message sans contenu, mais comme il n'appartient à aucune catégorie, il ne devrait pas être visible pour l'utilisateur.

• create_new_card(cname:string, c:string)

Créez un nouveau message avec le titre cname et le contenu c.

Comme ci-dessus, mais la carte est également créée avec du contenu.

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

Créez un nouveau message avec le titre cname , content cont , sous la catégorie colname.

Ressource API WordPress : créer un nouveau message

• add_card_col(cname:string, colname:string)

Ajoute une carte avec le nom cname à la colonne avec le nom colname.

Ressource API WordPress : Modifier un article

• move_card_col(cname:string, colname:string)

Déplace la carte avec le nom cname sous la colonne nommée colname. Cela devrait supprimer l'ancienne catégorie du message avant d'ajouter la nouvelle.

Ressource API WordPress : Modifier un article

• delete_card(cname:string)
Supprime une carte avec le nom cname.

Ressource API WordPress : Supprimer une publication

Cela effectue une suppression destructive ou non, selon que vous avez activé ou non la corbeille dans votre blog WordPress.

Intégrité des données

Maintenant que nous avons mappé nos fonctions sur les appels et les actifs de l'API WordPress, nous devons nous assurer que nos données restent cohérentes. Par exemple, une colonne Kanban qui a une capacité de 2, ne peut pas contenir plus de 2 cartes. Une carte ne peut pas être dans deux colonnes à la fois. Lorsqu'une carte est déplacée vers une autre colonne, elle doit être supprimée de l'endroit où elle se trouvait. Cependant, WordPress ne sait rien de ces contraintes, notre application doit donc les vérifier et les appliquer à chaque opération d'écriture.

Comme il s'agit d'un prototype, tous les cas extrêmes ne seront pas évidents dès la phase de conception. Ceux-ci apparaîtront inévitablement lors de la mise en œuvre de chaque fonction.

La poursuite des travaux

Jusqu'à présent, nous n'avons parlé que des API qui piloteront notre application Kanban en utilisant les ressources WordPress de différentes manières. Notre prototype serait gravement déficient s'il ne consistait qu'en un ensemble d'API backend sans interface que les gens pourraient réellement utiliser. Une fois de plus, nous voyons ici la polyvalence des API REST, car personne ne dit comment s'y prendre. Vous pouvez utiliser quelque chose comme Bootstrap ou écrire une bonne interface graphique en Java ; il n'y a littéralement aucune limite à ce que vous pouvez utiliser.

Notre prototype ne prend également en charge qu'un seul tableau Kanban, c'est-à-dire un projet, lié à votre instance WordPress. C'est probablement passable pour une preuve de concept mais évidemment inacceptable pour un produit final. Une solution serait de mapper les concepts Kanban à la taxonomie WordPress d'une manière différente et plus efficace, qui prendrait en charge plusieurs tableaux Kanban et encore plus de fonctionnalités telles que la collaboration d'équipe.

Le développement WordPress est devenu vraiment passionnant !