REST API (ואיך הוא עשוי לשנות את וורדפרס לנצח)

 כתבתו של טום איוור שהתפרסמה באתר premium.wpmudev.org. כאן.

כל מי ששם לב להופעותיו הציבוריות של מאט מולנווג במהלך השנה האחרונה הבחין בלא ספק בנושא אחד שעלה שוב ושוב: החשיבות של JSON REST API לעתידה של פלטפורמת וורדפרס. מאט איננו לבד בהתלהבותו מהנושא. מבקרים כמו בריאת קרוגסגרד מכנים זאת פוטנציאלית "הפרויקט המרגש ביותר לפלטפורמה מאז שהושקו פוסטים בהתאמה אישית".

במאמר זה נסביר אודות JSON REST API של וורדפרס, נדון במתי זה עתיד לעלות לרשת, ונסביר מה שאתם צריכים לדעת כדי לנצל במלואן את האפשרויות המהפכניות שהוא עומד להציע לכל עולם המשתמשים של וורדפרס. כבונוס, נביא גם את דבריו ומחשבותיו של ג'ק לנוקס, שדיבר בכנס WordCamp האחרון שנערך בלונדון על בניית תבניות בעזרת RSET API, והעתיד שהוא רואה את API מובילה את הקהילה אליו.

אולם לפני כן, נתחיל עם מעט רקע כללי על REST API. התיאור שנביא כאן איננו תיאור טכני ממצה. הוא נועד לתת רקע והבנה כלליים. מי שמעוניין בתיאור יותר ממצה ופרטני מוזמן ללחוץ על הלינק הזה שבו ניתן למצוא את ההצגה המצוינת של IBM את הנושא.

REST2

מה זה API? 
API הוא קיצור של Application Program Interface. במונחים פשוטים, זהו הממשק של פיסת תוכנה עם העולם החיצוני, הקובע איך ישתמשו בה. אלה החוקים שנקבעו עבור האינטראקציה שלה עם העולם הרחב, אלה יקבעו אילו חלקים של התוכנה יכולות לדבר עם תוכנות אחרות, ואיך היא תגיב.

מה זה REST API?
אם כן, REST API היא גישה ארכיטקטונית מסוימת לשיטה של הרכבת החוקים הללו. REST הוא קיצור של Representational State Transfer. זוהי שיטה שבה תוכנות יכולות לדבר זו עם זו בדרך כמה שיותר פשוטה. מדובר בפורמט גמיש מאוד, אבל כל היישומים שלו עתידים לחלוק מספר מאפייני ליבה עקרוניים. ארבעה מהם יינתנו כאן כדוגמה. הם לקוחים מתוך הפרזנטציה של IBM, המופיעה בלינק שלמעלה.

• שימוש אקסקלוסיבי בשיטות HTTP: משתמשת בפקודות HTTP כמו PUT, GET, POST, DELETE.

• חסרת מצב: הלקוח יכלול כל אינפורמציה דרושה הקשורה למצב בבקשה לשרתים ובחזרה.

• חשיפת מבנה תיקיות כמו URL: 
אתם תסתכלו על מבני קישורים דומים ל-URL במו http://myexampleschool.com/teachers/john

• העברת XML ,(JSON) Javascript Object Notation, או שניהם: יש סדרת אופציות מוסכמת לתחלופת מידע.

ישנה הרחבה מצוינת על הקונספט של REST API באתר Tutsplus.com, אם אתם מחפשים להבין עוד פרטים טכניים. עוד אפשרות היא להציץ בסקירה שארגן למענכם טוד פרדריק כאן למטה.

כל המונחים הטכניים הללו מיתרגמים, בהקשר של וורדפרס ותוסף ה- REST API, לדברים הבאים המתומצתים בדף הבית של התוסף:

תוסף זה מאפשר שימוש קל ב-REST API, הנגיש דרך HTTP. איספו את המידע של האתר שלכם בפורמט JSON פשוט. משתמשים, פוסטים, טקסונומיות, ועוד. קבלה ועדכון של מידע קלים מאוד, כמו שליחת בקשת HTTP.

לאחר שהתקנתם את התוסף, הכניסה למידע של האתר שלכם דרך REST הוא קל מאוד. דף הבית של הפלאגין מכיל כמה דוגמאות להמחשת הרעיון.

רוצה לקבל את כל הפוסטים של האתר שלך? שלח בקשת GET ל- /wp-json/posts. רוצה לעדכן את פרטיו של משתמש מספר 4 של האתר? שלח בקשת POST ל- /wp-json/users/4. רוצה לקבל את כל הפוסטים שיש בהם “awsome”? GET /wp-json/posts?filter[s]=awesome. זה עד כדי כך פשוט.

כמו שאפשר לראות בדוגמא, כל המידע שיחזור יהיה בפורמט JSON, מה שמוביל אותנו באופן נאה לחלק הבא.

איך JSON נכנס לתמונה

REST API של וורדפרס משתמש ב-Javascript Object Notation או JSON כפורמט המידע שלו. מדובר בפורמט מידע מודרני וידידותי למשתמש, עם מקודדים ומפענחים בכל שפות התכנות הגדולות. הבחירה ב-JSON מקילה על וורדפרס וכל יישום צד שלישי לשלוח מידע זה לזה בשפה שכולם מבינים.

לאלה מכם ש-JSON חדש להם לגמרי, ניתן למצוא הסבר מצוין באתר זה.

נקודת המפתח להבנה של REST API היא שהכול ברשת קורה דרך HTTP- מידע יוצא ומידע נכנס. ישנה הפרדה אמיתית בין לקוח ובין שרת, ואין כל צורך להיות בתוך לוח הבקרה כדי שבקשות ייקראו או יצאו לפועל. ואפילו לא בתוך האתר.

ובדיוק בגלל הדבר הקטן הזה, נפתח עכשיו עולם של אפשרויות חדשות. אבל לפני שניכנס אליהם, בואו לרגע נעבור על המצב הנוכחי של תוסף JSON REST API עבור וורדפרס.

 

תוסף JSON REST API עבור וורדפרס

תוסף REST API נמצא כרגע בפיתוח כתוסף אופציונלי. כפי שמשתמשי וורדפרס מנוסים יודעים, המסע בין תוסף אופציונלי ובין תוסף ליבה איננו תמיד חלק. כאשר עוסקים בתוסף בגודל ובמורכבות של ה-REST API לוורדפרס, זה אפילו יותר נכון.

במקור REST API היה אמור לעבור אינטגרציה לליבה בגירסה 4.1. זה לא התרחש, וכרגע הוא מתוכנן לעבור זאת – ויש שיאמרו כי זהו תכנון אופטימי- בגירסה 4.3. מתישהו באמצע אוגוסט הקרוב.

סקירה מצוינת לנושא זה נכתבה על ידי ג'וש פולוק לאתר Torquemag.io. היא נותנת הצצה טובה למאחרי הקלעים של התהליך ולסיבות שבגללן תאריך היעד אוגוסט נראה לא כל כך ריאלי כרגע. המרכזית שבין הסיבות הללו היא ההחלטה להפריד בנוקשות בין גרסה 1.2 הקיימת של התוסף ובין גרסה 2 שנמצאת בפיתוח ומיוחדת ספציפית לכך שיכללו אותה בליבה.

ההרגשה כעת היא ש"מתישהו ב-2015" היא ההערכה הטובה ביותר שניתן כרגע לתת. אבל לא נהיה מופתעים אם אפילו התאריך הגמיש הזה עוד יידחה. כמובן אין משמעות הדבר שמפתחים אינם חופשיים להתחיל לנהל ניסויים מיד עם התוסף הקיים והמוכן לשימוש.

המסמכים של הגרסה הקיימת נמצאים באתר התוסף wp-api.org וכוללים הוראות להתקנה זריזה והנחיות להתחלת עבודה לאותם מפתחים שרוצים כבר לשים שם גז.

שלושה עמודים נוספים יכולים מאוד להועיל לכל מי שרוצה להישאר מעודכן בהתפתחויות:

דף הבית של תוסף WP REST API 
המקטע מתוך דף הבית על הכניסה לליבה של וורדפרס
WP-API בגיטהאב

שלא תטעו, בלא קשר למכשולים הזמניים בדרכו של התוסף, הוא עושה את דרכו בבטחה אל הליבה, וזה הולך להיות עניין גדול.

להלן הסבר להצהרה הזאת:

 

למה תוסף REST API חשוב?

בשלב זה של המאמר אני יכול לראות שתי תגובות אפשריות אצל הקוראים.

א. אוקיי… למה זה צריך לעניין אותי? (זה לא סתם איזה פרויקט מסוג סידור טכני חדש מאחורי הקלעים שלא באמת איכפת לי?)
ב. אלוהים אדירים. זה הולך לשנות הכול!

הרשו לי להסביר מדוע לדעתי התגובה השנייה יותר קולעת למציאות מאשר הראשונה.

אם לעשות זאת בקיצור ובתמציתיות, האינטגרציה של JSON REST API תסמן את הסיום של תהליך ההשתנות של וורדפרס משורשיו כפלטפורמת בלוגים צנועה לכדי פלטפורמת אתרים ואפליקציות מלאה. בכך שהיא מספקת ממשק תכנותי מוסכם וסטנדרטי בינה ובין העולם החיצוני, וורדפרס פותחת את עצמה לכל האפליקציות וסביבות הפיתוח האחרות על פני כדור הארץ.

אלה בהחלט חדשות גדולות.
הנה חמש סיבות מדוע.

1. חיתוך חבל הטבור של PHP
למרות שהיא קיבלה קצת ביקורת בעבר, PHP היא עדיין העוצמה שמאחרי 80% מהאתרים המודרניים, ותומכים בה פומבית ענקי רשת כמו פייסבוק וכמובן, וורדפרס עצמה. אולם בעשור האחרון, ראינו התקדמויות עצומות בשפות אחרות כגון Ruby, Python ו-Go, בכל האמור למהירות, כלי עבודה ומבני תוכנה. REST API מעניקה לשפות הללו כניסה מיידית לכל טווח הפונקציות הילידות של וורדפרס. רק הסיבה הזו אמורה לגרום למוח של כל מפתח או בעל אתר להתחיל לרוץ.

דרך טובה להבין את הפוטנציאל המוצע כאן הוא לחשוב על עולם התוספים. כל תוסף וורדפרס שאפשר לחשוב עליו הוא עכשיו מועמד לאינטגרציה למבני תוכנה אחרים כמו Ruby on Rails או Django.

כאשר חושבים על העושר של האקולוגיה של וורדפרס, ובאיזו הצלחה היבטים שונים שלה (למשל תוספים) הפכו לסחורות, הפוטנציאל להתנייד לפלטפורמות אחרות היא מעוררת תיאבון מבחינת אפשרויות רווח למפתחים.

2. אינטגרציה אמיתית למובייל
וודפרס הטיבה לעשות אולי יותר מכל מערכת ניהול תוכן מיינסטרימית בלפצח את האתגר של להציג אתרי אינטרנט על טווח רחב של מסכים ומכשירים (באמצעות רספונסיביות). אולם אינטגרציה אמיתית עם העולמות השונים של iOS ואנדרואיד שמחוץ לבראוזר, עדיין לא הוגשמה.

ישנן אפליקציות וורדפרס לשימוש באנדרואיד וiOS כמובן, אבל איטגרציית צד שלישי אמיתית עדיין רחוקה מלהיות נפוצה.

השימוש ב-REST API, יאפשר למפתחי מובייל להשתמש בהתקנות וורדפרס כשרת נוסף לכל דבר, עם נקודות קצה מוגדרות היטב, מנקודת המבט של האפליקציות שלהן. עובדה זו לבדה פותחת את וורדפרס כאופציית ניהול ריאלית מאוד לאפליקציות מובייל וסוללת את הדרך לכל מיני צורות של אינטגרציות עתידיות.

ל- AppPresser יש סקירה מצוינת ומציתת דמיון על הצורה שבה זה יכול לעבוד באתר שלהם.

כדאי לציין כאן שאחוזי השימוש באפליקציה בנייד נשארת על סביבות ה-80%, כד שדי ברור שוורדפרס הולגת להצטרך לנוע לכיוון סביבת האפליקציות ולא ההיפך. REST API, היא הדרך שבה זה הולך לקרות.

כאשר חושבים על כמויות אתרי הוורדפרס שכרגע גם מריצים גרסת אפ נפרדת לאתר שלהם עבור מובייל, רוחב היריעה לאינטגרציה עתידית מתברר כעצום באמת ובתמים.

3. הצד הקדמי הולך להיות אופציונלי
שתי הנקודות הקודמות מובילות לשלישית רחבה יותר. השימוש בצד החיצוני של וורדפרס הולך להפוך לאופציונלי ולא מחויב המציאות. מנקודת המבט של API, הפרונט אנד הוא בסך הכל עוד אפליקציה חיצונית בנקודת הקצה. המשמעותיות של זה הם עצומות.

וורדפרס הוא עכשיו רק עוד עצם שיכול להיות מוסף באופן חלק לארגז הכלים של כל מפתח מודרני מבלי שיצטרך לעבור דרך מערכת הטמפלטים שלו, להירשם למערכת או להתעסק עם הברגים והאומים הפנימיים שלו.

צפו לראות מהפכה בשימוש בתבניות ותוספים כאשר ירד האסימון למפתחים ובעלי אתרים ברחבי העולם.

4. הממשק האחורי מוכן להיות מדומיין מחדש
כמעט מרגע שהאדמין של וורדפרס נולד, מישהו איפהשהו מצא משהו להתלונן עליו שם. וגם אני אשם בכך לעיתים.

הפונטציאל של אינטגרציה מלאה של REST API לליבה פותחת את האפשרויות של האדמין של וודפרס להשתנות באמת. למפתחים סוף סוף יהיה אפשרות להגדיר לעצמם באמת גירסה אישית משלהם במקום רק להתאים אישית פינה כאן, פינה שם.

דוגמאות של זה כבר מופיעות פה ושם. הדוגמא של wordpress.com והאדמין המיוחד שלה, היא הבולטת ביותר בשטח כרגע.

מאמרים שפורסמו לאחרונה על ידי ג'ף צ'נדלר ב-WP Tavern ועל ידי נואל טוק, מציעים סקירות מעניינות על מה שמתרחש עכשיו בשטח, ועל כמה מהכיוונים האפשריים שפאנל האדמין של וורדפרס עשוי ללכת אליהם בעתיד- כולל התייחסויות לניסיונות של HappyTables ושל Pickle בהקשר זה.

5. לעלות על עגלת רוחב הפס של ג'אווסקריפט

בשלב זה, זה פחות או יותר רשמי: ג'אווסקריפט אוכלת את העולם.
כבר הזכרנו את העלייה של תבניות עבודה כמו Rails ו- Django בנקודה מספר אחת, אבל הכוכב האמיתי בחמש שנים האחרונות בשמיים של שפות התכנות, הוא ג'אוואסקריפט. עלייתן של Node.js Angular JSbackboneEmber ו- React, מיקמו את ג'אווסקריפט באופן ברור ובלתי מעורער במרכז ובחזית.

REST API מאפשר לוורדפרס להפוך לפרטנרית אפשרית של הטכנולוגיות הללו, במקום להיות מתחרה שלהן. וכאשר זוכרים איזה גב יש ל-Angular JS ול-React, על ידי גוגל ופייסבוק, זוהי פוזיציה טובה ונכונה להיות בה.

מנקודת המבט של מעצבי ומפתחי תבניות, זה אומר שהם חופשיים לחקור ולגלות את הטוב ביותר מבין הטכנולוגיות החדשות הללו, תוך שהם מחדדים את כישורי הוורדפרס הקיימים שלהם. לרקוד על שתי החתונות וליהנות מאוד מהריקוד הזה.

 

פרוייקטים פרקטיים

 
אנחנו עדיין נמצאים בימים המוקדמים של העולם עם REST API, ובקושי שרטנו את פני השטח בהקשר של הנקודות שפירטנו קודם. לפני שנסיים את הכתבה, הייתי רוצה להכיר לכם שתי סקירות עומק שנעשו לאחרונה לתוך הפרטים של מה ש-API יכולה לעשות.

הראשונה עוסקת באופציות של פיתוח תבניות והשנייה יותר בפיתוח של אפליקציות.

1. הפרזנטציה של ג'ק לנוקס במרץ האחרון אודות API REST בכנס וורדקאמפ בלונדון.
זוהי שיחה שהייתי בר מזל להיות בה לאחרונה והיא שבעקבותיה נכתבה כתבה זו. ג'ק עושה עבודה מדהימה בצורה שבה הוא מלווה מאזין דרך השלבים הראשונים של API ומספק דוגמאות קונקרטיות במהלך המסע הזה. אז במקום לנסות לצטט ולדבר על זה, אני פשוט ממליץ לצפות בזה בשלמות.

שתי נקודות קפצו לי במהלך הצפיה:

א. מפתחים מנכסי רשת רציניים בבריטניה, כמו הסאנדיי טיימס למשל, כבר מנסים להבין איך למנף את הטכנולוגיה הזו, מה שגם מחזק שמועות שרצו על ניסויים ומחקר שמנהלים בגופי מדיה גדולים בארה"ב, כמו הניו-יורק טיימס. אימוץ מוקדם שכזה, ויהיה קטן או ניסיוני ככל שיהיה, אומר שיש מספר משמעותי של מפתחים בקליבר גבוה שממש רוצים לנסות את הכוח של הטכנולוגיה הזו בהפקה.
ב. המפגש שבין תבניות תכנות של ג'אווסקריפט כמו אנגולר וריאקט, ובין REST API הולך להציג בפני מפתחים גם אתגר גדול וגם הזדמנות גדולה.

סשן שאלות ותשובות קצר עם האוטומטיקאי ג'ק לינוקס
ג'ק הקדיש לנו קצת מזמן עבודתו כדי לענות על כמה שאלות ששלחתי לו במייל לאחר שהיה לי הזמן לעבד את המידע שנחשפתי אליו בהרצאה שהוא נתן בוורדקמפ, לונדון. אני מקווה שהראיון ייתן לכם קצת על מה לחשוב עליו בהקשר של לאן REST API עומד לקחת את וורדפרס. תודה רבה ג'ק!

ש: מה היה האתגר הגדול ביותר שאתה אישית נתקלת בו כמפתח בתהליך ההבנה והלימוד של REST API ?
ת: בהקשר של תבניות, אני חושב שהדבר הקשה ביותר היה ללמוד איך ליצור מחדש את כל הדברים שאתה רגיל לקחת כמובן מאליו כשאתה עושה דברים בדרך הרגילה. למשל ראוטינג. בסביבת וורדפרס רגילה ראוטינג הוא לא משהו שאתה צריך לחשוב עליו בכלל. יש כל מיני אתגרים אחרים שקשורים לצורה שבה REST API התפתח לאחרונה. למשל, קושי בלהציג ווידג'טים, להתחמודד עם דברים כמו שה-body_class משתנה כשעוברים מדף, לפוסט, לדף וכן הלאה.

ש: אילו היבטים של REST API הכי מרגש אותך לחשוב על להשתמש בעתיד?
ת: שאילתות קבוצתיות. אלה עדיין נמצאות בפיתוח אבל הן יאפשרו לך לבקש בקשות מנקודות קצה רבות ושונות בבת אחת, בשאילתת HTTP אחת.

ש: מהו המקור הטוב ביותר, או המקורות הטובים ביותר שהייתה ממליץ למפתחים או מעצבים לפנות אליהם כדי ללמוד איך לעבוד עם REST API?
ת: אני חושב שהמשאבים החשובים ביותר של ידע לגבי REST API נמצאים בעולם ה-JS. Backbone לדוגמא, היא תבנית תכנות שעוצבה לצורך עבודה עם REST API. למידת בק-בון עזרה לי להבין מה אפשר לעשות עם רסט. דוגמיות ה-TodoMVC של עדי אוסמני הן מועילות במידה עצומה להבנת הבסיס של כל התבניות והספריות החדשות של JS. ובמיוחד הדוגמית של backbone.

ש: ככל שוורדפרס נפתחת לשפות חדשות ולרשת רחבה יותר, לאן אתה רואה אותה מתקדמת כפלטפורמה, לאו דווקא כמערכת ניהול תוכן, בחמש השנים הקרובות.
ת: נדמה לי שאני נתקל בוורדפרס במקומות לא צפויים כבר זמן מה. אבל אני חושב ש-REST API יוביל לכך שוורדפרס יהיה בשימוש בסביבות יותר ויותר נרחבות. כפי שאמרתי, אני חושב שהוורדפרס שאותו אנו מכירים ואוהבים בהחלט יישאר קיים בדרך זו או אחרת בעוד חמש שנים. הסתכל על כמה אנשים עדיין משתמשים בבלוגר.

תהיה דרישה למשהו שעובד היטב מהאריזה, אבל אולי נראה יותר אנשים יוצרים יישומים מעניינים ומתקדמים של וורדפרס שיספקו נישות מסוימות שכיום מסופקות על ידי HappyTables.

ש: ולבסוף, שאלה כללית יותר, מה אתה הכי אוהב בלהיות אוטומטיקאי?
ת: אה, יש הרבה דברים טובים בלעבוד באוטומאטיק. מבחינה מקצועית, החלק האהוב עלי בעבודה כאן היא הכמות העצומה של המידע שזורמת אלי מהקולגות שלי. יש כאן אנשים חכמים מאוד בחברה הזאת ואני למדתי כל כך הרבה מאז שהצטרפתי לפני שנה וחצי. אבל כנראה שהחלק האהוב עלי ביותר מבחינת אורח חיים, הוא החופש שצורת העבודה הזאת מספקת. מכיוון שהחברה מפוזרת על פני כל הכוכב, אנחנו ללא איזור זמן. זה אומר שאנשי אוטומאטיק יכולים לעבוד מתי שהם רוצים במשך היום. אני חי בחלק מאוד יפה של אנגליה, אבל גם יורד המון גשם, אז כשיש מזג אוויר יפה, אני לא רוצה להיות תקוע ביום עבודה כמו רוב האנשים. ואני גם לא חייב. אני יכול לצאת עם אופני ההרים שלי וליהנות.

2. ההרצאה של ק. אדם ווייט על האינטגרציה של Node.js. 
וורדפרס במקומות משונים: ניהול תוכן בשביל נוד בעזרת רסט הוא דוגמא מרתקת של שימוש בוורדפרס כמערכת ניהול תוכן בק-אנד עבור אפליקציית Node.js על אפליקציית שדה ירוד עבור חברת פורצ'ן 500.

הדבר העיקרי שלקחתי מזה היה שהכוח והגמישות של ה-CMS של וורדפרס היו מספקים כדי להתחרות בהצלחה נגד בתחרות קשה. זה אומר דברים מאוד טובים לאפשרות השימושים העתידיים של וורדפרס כמערכת ניהול בפיתוח אפליקציות דרך ה-REST API.

לסיכום: 
לא משנה איזה תחום של וורדפרס הוא תחום ההתמחות שלך, אנו מקווים שהאינפורמציה שלמעלה גירתה את העניין שלך בשינויים המתקרבים אלינו. הם הולכים להשפיע על כולם. אי הביטחון בשאלה מתי JSON REST API הולך להיכנס לליבה לא צריך לעצור אתכם מלהתחיל לחקור אותו במצבו הנוכחי. זו שאלה של מתי זה יקרה, לא האם זה יקרה. ועכשיו הוא זמן טוב לערוך כמה מסעות מחקר ולחדד את ארגז הכלים שלכם.

מוזמנים לעדכן בתגובות למטה אם כבר טבלתם את בהונותיכם במים, ואילו אפליקציות אתם יכולים לראות את עצמכם מרכיבים בעזרת האופציות החדשות הללו.

שיתוף

מאמרים נוספים

Scroll to Top