WordPress REST API'sini kullanarak Trello benzeri bir uygulamanın prototipini oluşturma

Yayınlanan: 2017-02-03

Platform için yeni bir çağa doğru bir hamle olarak, duyurulmasından bu yana WordPress'in REST API'sini defalarca duyurduk. Bu gönderide, WordPress REST API'sinin ne kadar güçlü ve çok yönlü olabileceğini gösteren bir örnek kullanarak son birkaç hafta içinde öğrendiğimiz her şeyden yararlanacağız.

Farklı diller arasında birlikte çalışabilirlik, REST'in temelinde yattığından, iyi 'ole WordPress taksonomileri ve gönderileri kullanarak, ancak bir değişiklikle, Trello benzeri bir uygulama prototipi tasarlayacağız! Bu şekilde, WordPress'in bir geliştirme platformu olarak nasıl kullanılabileceğini göstermeyi umuyoruz.

Trello, ilk olarak 1980'lerde Toyota tarafından popüler hale getirilen Kanban paradigmasını kullanan başarılı bir proje yönetimi uygulamasıdır. Projeler, görevlere karşılık gelen kartlarla dolu sütunları içeren panolar olarak temsil edilir. Kartlar, Bitti durumuna gelinceye kadar bir sütundan diğerine geçer ( örneğin, Yapılacaklar'dan Yapılacaklar'dan Bitti'ye ) . Bu akışa değer akışı denir. Kanban'ın arkasındaki iki temel fikir, a) işinizi görselleştirmek ve b) devam etmekte olan mevcut işinizi sınırlamaktır. Trello durumunda, iş grafik kartları kullanılarak görselleştirilir. Sütunlar da maksimum kapasiteye sahip olabilir, yani bir sütuna belirli miktarda görev yerleştirebilirsiniz ve bundan daha fazlasını koyamazsınız. Örneğin, aşağıdaki Yapıyor sütununun kapasitesi 2'dir.

Uygulama tasarımı

Kavram kanıtı olarak Kanban paradigmasının minimal, yalın bir versiyonunu tasarlayacağız. Ana işlevler şunlardır:

  1. Kullanıcılar yeni sütunlar oluşturabilir/güncelleyebilir/silebilir.
  2. Kullanıcılar, belirli bir sütunun altındaki yeni kartlar oluşturabilir/güncelleyebilir/silebilir.

Tüm bunların nasıl uygulanacağına dair temel fikir, REST API kullanarak akıl almaz derecede basittir:

  • Kanban sütunları, WordPress kategorileri olarak temsil edilir .
  • Sütun kapasiteleri kategori açıklamalarında tam sayı olarak yer alabilir .
  • Bir kategoriye atanan gönderiler olarak Kanban kartları .
  • Bir kartı bir sütundan diğerine taşımak, yalnızca gönderinin ilgili kategorisini değiştirmek anlamına gelir .

Hızlı prototiplemenin "erken ve sıklıkla yinele" fikrini takiben, aşağıda sunulan Kanban API'leri yalnızca taslaklardır. İşlevler, daha önce listelenen iki ana işlevsellikten ve WordPress varlıklarının sütunların kategorilere ve kartların gönderilere eşlenmesinden tahmin edilir. Prototipin fiili uygulaması başladığında yeni ve zorlu sorunların ortaya çıkacağına şüphe yok, ancak aşağıdaki taslaklar başlamak için yeterli!

Kanban Sütunları API'sı

Aşağıdaki liste, Kanban sütunlarını değiştirecek işlevleri parametre türleri ile birlikte belgelemektedir. Sütunlar WordPress kategorileri olarak gösterilecek ve kapasite numaraları kategori açıklamasına eklenecek. Bu liste herhangi bir dönüş değerini belgelemez, çünkü bu prototip için WordPress'ten JSON yanıt nesnesi yeterli olacaktır.

Pressidium ile web sitenizi barındırın

60 GÜN PARA GERİ GARANTİSİ

PLANLARIMIZI GÖRÜN

Ancak, işlemin başarıyla tamamlanıp tamamlanmadığını veya bir şeylerin yanlış gittiğini belirtmek için tüm işlevler doğru veya yanlış değerini döndürür. İkinci durumda, gerçek neden JSON yanıt nesnesi içinde bulunabilir, ancak genel olarak kavram kanıtı prototipi için gerçek bir hata denetimi sağlanmaz.

• create_new_col(cname:string, cap:int)
Kapasiteyi temsil eden bir tamsayı sınırı ile cname adlı yeni bir Kanban sütunu oluşturun .

WordPress API Kaynağı: Yeni bir kategori oluşturun

Bu, yeni bir kategori oluşturacak ve ardından kapasite tamsayı numarasını kategori açıklamasına ekleyecektir.

change_col_name(eskiad:dize, yeniad:dize)
Bir Kanban sütununun adını eskiaddan yeniadı olarak değiştirin .

WordPress API Kaynağı: Bir kategoriyi düzenleyin

Bu sadece kategori adını değiştirecektir.

change_col_cap(newcap:int )
Sütun kapasitesini newcap olarak değiştirin.

WordPress API Kaynağı: Bir kategoriyi düzenleyin

Bu, yeni kapasite numarasını eklemek için ilgili kategorinin açıklamasını değiştirecektir.

delete_col(sütun adı:dize)
colname adlı sütunu siler .

WordPress API Kaynağı: Bir kategoriyi silin

Bu, sütuna karşılık gelen kategoriyi siler. Bunu yaparak, o sütunun altındaki kartları etkin bir şekilde “yetim” edeceksiniz. Bu silme işleminin nasıl uygulanacağına siz karar vereceksiniz. Örneğin, a) bir sütunu silmek, o sütunun altındaki her şeyi silmek anlamına gelir veya b) altındaki kartları _del_<category> olarak yeniden adlandırarak “yumuşak” olarak silmek, böylece gelecekte bunları geri alabilirsiniz.

Kanban Kartları API'sı

Aşağıdaki liste aynı, ancak Kanban kartları için. Kartlar, yapılacak görevi açıklamak için gönderinin başlığını etkin bir şekilde kullanarak WordPress gönderileri olarak temsil edilecektir. Gönderinin içeriği, notlar için ek bir kapsayıcı olarak kullanılabilir.

• create_new_card(cname:dize)

cname adında yeni bir kart oluşturur.

Bu, içeriği olmayan yeni bir gönderi oluşturacaktır, ancak herhangi bir kategoriye ait olmadığı için kullanıcı tarafından görülmemelidir.

• create_new_card(cname:dize, c:dize)

Başlık cname ve içerik ile yeni bir gönderi oluşturun c.

Yukarıdakiyle aynı, ancak kart içerikle de oluşturulur.

• create_new_card(cname:dize, devam:dize, sütunadı:dize)

Kategori colname altında cname , content cont başlıklı yeni bir gönderi oluşturun.

WordPress API Kaynağı: Yeni bir gönderi oluşturun

• add_card_col(cname:dize, sütunadı:dize)

Colname isimli sütuna cname isimli kartı ekler .

WordPress API Kaynağı: Bir gönderiyi düzenleyin

• move_card_col(cname:dize, sütunadı:dize)

cname adlı kartı colname adlı sütunun altına taşır. Bu, yenisini eklemeden önce gönderinin eski kategorisini kaldırmalıdır.

WordPress API Kaynağı: Bir gönderiyi düzenleyin

• delete_card(cname:dize)
cname adlı bir kartı siler.

WordPress API Kaynağı: Bir gönderiyi silin

Bu, WordPress blogunuzda çöp kutusunu etkinleştirip etkinleştirmediğinize bağlı olarak yıkıcı bir silme gerçekleştirir veya gerçekleştirmez.

Veri bütünlüğü

Artık işlevlerimizi WordPress API çağrıları ve varlıklarıyla eşleştirdiğimize göre, verilerimizin tutarlı tutulduğundan emin olmamız gerekiyor. Örneğin, kapasitesi 2 olan bir Kanban sütunu 2'den fazla kart tutamaz. Bir kart aynı anda iki sütunda olamaz. Bir kart başka bir sütuna taşındığında bulunduğu yerden silinmesi gerekir. Ancak WordPress, bu kısıtlamalar hakkında hiçbir şey bilmiyor, bu nedenle uygulamamızın her yazma işleminde bunları kontrol etmesi ve zorlaması gerekiyor.

Bu bir prototip olduğundan, tüm uç durumlar tasarım aşamasından belli olmayacaktır. Bunlar, her işlevin uygulanması sırasında kaçınılmaz olarak açılır.

Daha Fazla Çalışma

Şimdiye kadar sadece WordPress kaynaklarını farklı şekillerde kullanarak Kanban uygulamamızı çalıştıracak API'lerden bahsettik. Prototipimiz, insanların gerçekten kullanabileceği hiçbir ön ucu olmayan yalnızca bir grup arka uç API'sinden oluşuyorsa ciddi şekilde eksik olurdu. Burada bir kez daha REST API'lerinin çok yönlülüğünü görüyoruz, çünkü bu konuda nasıl bir yol izlemeniz gerektiğini söyleyen kimse yok. Bootstrap gibi bir şey kullanabilir veya Java'da iyi bir 'ole GUI' yazabilirsiniz; Kelimenin tam anlamıyla kullanabileceklerinizin bir sınırı yoktur.

Prototipimiz ayrıca WordPress örneğinize bağlı bir proje olan yalnızca bir Kanban panosunu destekler. Bu muhtemelen bir kavram kanıtı için kabul edilebilir, ancak nihai bir ürün için açıkça kabul edilemez. Çözümlerden biri, Kanban kavramlarını WordPress sınıflandırmasıyla farklı, daha verimli bir şekilde, birden çok Kanban panosunu ve hatta ekip işbirliği gibi daha fazla özelliği destekleyecek şekilde eşleştirmek olabilir.

WordPress geliştirme gerçekten heyecan verici hale geldi!