Crearea prototipului unei aplicații asemănătoare Trello folosind API-ul REST WordPress
Publicat: 2017-02-03Am promovat în mod repetat API-ul REST al WordPress de la anunțul său, ca o mișcare către o nouă eră pentru platformă. În această postare, vom valorifica tot ceea ce am învățat în ultimele săptămâni, folosind un exemplu care arată cât de puternic și versatil poate fi API-ul REST WordPress.
Deoarece interoperabilitatea între diferite limbi se află în centrul a ceea ce este REST, vom proiecta un prototip, o aplicație asemănătoare Trello, folosind taxonomii și postări WordPress bune, dar cu o întorsătură! În acest fel, sperăm să demonstrăm cum WordPress poate fi folosit ca platformă de dezvoltare.
Trello este o aplicație de succes de management al proiectelor care utilizează paradigma Kanban, popularizată inițial de Toyota în anii 1980. Proiectele sunt reprezentate ca panouri , care conțin coloane pline cu carduri corespunzătoare sarcinilor. Cărțile se deplasează de la o coloană la alta, până când sunt în starea Terminat ( de exemplu , de la Tot la Efectuat la Terminat). Acest flux se numește flux de valori. Cele două idei cheie din spatele Kanban sunt a) să vă vizualizați munca și b) să vă limitați activitatea curentă în desfășurare. În cazul lui Trello, munca este vizualizată cu ajutorul plăcilor grafice. Coloanele pot avea și capacități maxime, ceea ce înseamnă că puteți plasa o anumită cantitate de sarcini într-o coloană și nu mai mult de atât. De exemplu, coloana Doing de mai jos are o capacitate de 2.
Proiectarea aplicației
Vom proiecta o versiune minimală, de bază, a paradigmei Kanban ca dovadă de concept. Principalele funcționalități sunt următoarele:
- Utilizatorii pot crea/actualiza/șterge coloane noi.
- Utilizatorii pot crea/actualiza/șterge carduri noi care se află sub o anumită coloană.
Ideea de bază despre cum vor fi implementate toate acestea este incredibil de simplă folosind API-ul REST:
- Coloanele Kanban sunt reprezentate ca categorii WordPress .
- Capacitățile coloanelor pot fi plasate ca numere întregi în descrierile categoriilor .
- Cardurile Kanban ca postări care sunt atribuite unei categorii .
- Mutarea unui card dintr-o coloană în alta înseamnă pur și simplu schimbarea categoriei corespunzătoare postării.
Urmând ideea „iterează devreme și des” de prototipare rapidă, API-urile Kanban prezentate mai jos sunt doar schițe. Funcțiile sunt extrapolate din cele două funcționalități principale enumerate anterior și maparea activelor WordPress de coloane la categorii și carduri la postări. Nu există nicio îndoială că vor apărea probleme noi și provocatoare odată cu începerea implementării efective a prototipului, dar următoarele schițe sunt suficiente pentru a începe!
API-ul Kanban Columns
Lista de mai jos documentează funcțiile care vor manipula coloanele Kanban, împreună cu tipurile lor de parametri. Coloanele vor fi reprezentate ca categorii WordPress, iar numărul lor de capacitate va fi adăugat în descrierea categoriei. Această listă nu documentează nicio valoare returnată, deoarece pentru acest prototip va fi suficient obiectul de răspuns JSON de la WordPress.
Cu toate acestea, toate funcțiile vor returna true sau false pentru a indica dacă operația a fost finalizată cu succes sau dacă ceva a mers prost. În acest din urmă caz, cauza reală poate fi găsită în obiectul de răspuns JSON, dar, în general, nu va fi asigurat niciun control real al erorilor pentru prototipul de dovadă a conceptului.
• create_new_col(cname:string, cap:int)
Creați o nouă coloană Kanban numită cname cu un număr întreg care reprezintă capacitatea.
Resursa API WordPress: Creați o categorie nouă
Aceasta va crea o nouă categorie, apoi va adăuga numărul întreg de capacitate la descrierea categoriei.
• change_col_name(nume vechi:șir, nume nou:șir)
Schimbați numele unei coloane Kanban din vechiul nume în nou .
Resursa API WordPress: Editați o categorie
Acest lucru va schimba pur și simplu numele categoriei.
• change_col_cap(newcap:int )
Schimbați capacitatea coloanei în newcap.
Resursa API WordPress: Editați o categorie
Aceasta va schimba descrierea categoriei corespunzătoare pentru a adăuga noul număr de capacitate.
• delete_col(colname:string)
Șterge coloana numită colname.
Resursa API WordPress: Ștergeți o categorie
Aceasta pur și simplu șterge categoria corespunzătoare coloanei. Făcând acest lucru, veți „orfani” efectiv cărțile de sub acea coloană. Va rămâne la latitudinea dvs. să decideți cum să implementați această ștergere. De exemplu, fie a) ștergerea unei coloane înseamnă ștergerea tot ce se află sub acea coloană, fie b) ștergerea „soft” prin redenumirea cardurilor de sub ea ca _del_<category>, astfel încât să le puteți anula ștergerea în viitor.
API-ul Kanban Cards
Lista de mai jos este aceeași, dar pentru cardurile Kanban. Cardurile vor fi reprezentate ca postări WordPress, folosind în mod eficient titlul postării pentru a descrie sarcina de realizat. Conținutul postării poate fi folosit ca un container suplimentar pentru note.
• create_new_card(cname:string)
Creează un card nou numit cname.
Acest lucru va crea o postare nouă fără conținut, dar deoarece nu aparține nici unei categorii, nu ar trebui să fie vizibilă pentru utilizator.
• create_new_card(cname:string, c:string)
Creați o postare nouă cu titlul cname și conținut c.
La fel ca mai sus, dar cardul este creat și cu conținut.
• create_new_card(cname:string, cont:string, colname:string)
Creați o postare nouă cu titlul cname , content cont , sub categorie colname.
Resursa API WordPress: creează o postare nouă
• add_card_col(cname:string, colname:string)
Adaugă card cu numele cname la coloana cu numele colname.
Resursa API WordPress: Editați o postare
• move_card_col(cname:string, colname:string)
Mută cardul cu numele cname sub coloana numită colname. Aceasta ar trebui să elimine vechea categorie a postării înainte de a o adăuga pe cea nouă.
Resursa API WordPress: Editați o postare
• delete_card(cname:string)
Șterge un card cu nume cname.
Resursa API WordPress: Ștergeți o postare
Aceasta efectuează sau nu o ștergere distructivă, în funcție de dacă ați activat coșul de gunoi în blogul dvs. WordPress.
Integritatea datelor
Acum că ne-am mapat funcțiile la apelurile și activele API WordPress, trebuie să ne asigurăm că datele noastre sunt păstrate consecvente. De exemplu, o coloană Kanban care are o capacitate de 2, nu poate conține mai mult de 2 cărți. Un card nu poate fi în două coloane în același timp. Când un card este mutat într-o altă coloană, acesta trebuie să fie șters de unde a fost. WordPress, însă, nu știe absolut nimic despre aceste constrângeri, așa că aplicația noastră trebuie să le verifice și să le impună în fiecare operațiune de scriere.
Deoarece acesta este un prototip, nu toate carcasele marginale vor fi evidente încă din faza de proiectare. Acestea vor apărea inevitabil în timpul implementării fiecărei funcții.
Lucrări suplimentare
Până acum am vorbit doar despre API-urile care vor conduce aplicația noastră Kanban folosind resurse WordPress în moduri diferite. Prototipul nostru ar fi serios deficient dacă ar consta doar dintr-o grămadă de API-uri backend fără front-end pe care oamenii să le poată utiliza efectiv. Încă o dată aici vedem versatilitatea API-urilor REST, deoarece nimeni nu spune cum ar trebui să procedați în acest sens. Puteți folosi ceva de genul Bootstrap sau puteți scrie o interfață grafică bună în Java; literalmente nu există limită la ceea ce poți folosi.
Prototipul nostru acceptă, de asemenea, o singură placă Kanban, adică un proiect, legat de instanța dvs. WordPress. Acest lucru este probabil acceptabil pentru o dovadă de concept, dar evident inacceptabil pentru un produs final. O soluție ar fi maparea conceptelor Kanban la taxonomia WordPress într-un mod diferit, mai eficient, unul care să accepte mai multe panouri Kanban și chiar mai multe funcții, cum ar fi colaborarea în echipă.
Dezvoltarea WordPress a devenit cu adevărat incitantă!