@aaron אמר בתבניות של API:
בתכלס אין יותר מידי פתרונות בתחום הזה, יש בעיקר את strapi, שאני לא יודע למה אתה מזלזל בו, הוא מעולה. אולי לא לכל סדרי גודל של נתונים, אבל מניח שלרוב כן.
strapi הוא CMS זה אומר שהוא אומר לך "אל תכתוב קוד אני אכתוב בשבילך". זה אומר פעולות מייגעות של יצירת אובייקטים דרך הממשק שלהם. וזה אומר מעט מאוד גמישות ושליטה בשינוי הקוד תכל'ס ושילובו באפליקציה שלך.
בנוסף, הוא לא ממש תורם. כי יש לו מעט מאוד תבניות מוכנות, מה שאומר שאתה צריך ליצור את האובייקטים לבד, וכל היתרון שנשאר הוא שעושים את זה דרך הממשק - שזה מבחינתי בעיקר חסרון.
יש תחליפים כמו keystone (אני רואה שכבר הזכרת) הוא אמנם נותן לך יותר שליטה בידיים, אבל תכלס לא חוסך יותר מידי בכתיבה של בוילרפלייטס.
עוד לא חפרתי שם מספיק, אבל לא הבנתי מה הגדולה שלו. הוא סך הכל מספק תחביר לבנות CURD+API אבל תכל'ס אתה צריך לבנות הכל לבד. (אולייש כאלו שזה יותר קל להם). יש שם אמנם כמה פרוייקטי דוגמא כמו בלוג אבל זה בקטנה ולא נותן מענה.
יש גם את directus, בזמנו הרגיש קצת בוסרי, מניח שכבר יותר טוב כיום.
לא מכיר. מה זה?
בסופו של דבר, אם אתה לא מחפש את הUI שCMS נותן לך, אז אין שום עניין לחפש "תבנית" לAPI.
אתה כנראה סה"כ רוצה לכתוב איזה מבנה בסיסי של האובייקטים שלך, ולחשוף פעולות CRUD עליהם. שזה בגדול DB as API..
לזה כנראה keystone מעולה. ובטוח יש תחליפים דומים.
בטח שיש ענין. אני אבהיר למה אני מצפה. אני לא מצפה לקבל רק שלד בסיסי כללי.
אני מצפה לסוג של ספריה שמכילה הרבה רכיבים קלאסיים. למשל:
ניהול הרשאות, לוגין, תיבת הודעות פנימית, פוסטים (בלוג), חנות, צ'ט, הגדרות חשבון, סטטיסטיקות אתר, ניהול לקוחות, ניהול קורסים וכו' וכו'.
כמובן עם אינטרפייס שמאפשר לאנשים ליצור פלגינים ורכיבים נוספים.
הספריה צריכה לבצע 3 פעולות:
- לייצר DB מתוך כלל הרכיבים שאבחר, ולעדכנו לפי הצורך אם אני מוסיף רכיב.
- לייצר אובייקטים של ORM מותאמים לטבלאות שנוצרו
- ליצור קלאסים עם פונקציות API בסיסיות לכל רכיב/טבלה. (כמו למשל fundUser, login, addProduct וכו')
לי נשאר לבחור אלו רכיבים אני רוצה, ולהתחיל להשתמש. בדומה לוורדפרס, עם הבדל קטן: התוצאה שלי אינה ממשק אלא קוד, והשינויים שלי יהיו עריכת הקוד (הוספת פונקציות שונות לAPI, ויצירת שדות/טבלאות נוספות משלי עם API מתאים ושילובם לפי הצורך בקוד שנוצר ע"י המחולל של הספריה).
ההבדל בין זה לשני הדוגמאות הנ"ל היא ראשית שאיני צריך להתעסק עם ממשק אלא אני מקבל קוד מוכן (לא אינטרפייס!) ועורך אותו, שנית שיש מספיק רכיבים לשלב.
הייתי מובן מספיק?