משתמש:נתנאל שטרן/Swagger (תוכנה)
Swagger היא חבילת כלים עבור מפתחי API מ-SmartBear Software[1] ומפרט לשעבר שעליו מבוסס OpenAPI Specification.[2]
היסטוריה
פרויקט Swagger API נוצר בשנת 2011 על ידי Tony Tam, מייסד שותף טכני של אתר המילון Wordnik. במהלך הפיתוח של מוצרי וורדניק, הצורך באוטומציה של תיעוד API ויצירת לקוח SDK הפך למקור עיקרי לתסכול. טאם עיצב ייצוג פשוט של JSON של ה-API, תוך שהוא מתבסס על הגמישות של חלק מסגנון הארכיטקטורה REST ומשתמש בתכונות רבות של כלים שנבנו עבור פרוטוקול SOAP. הקונספט לממשק המשתמש הוצע על ידי Ayush Gupta, שהציע שממשק משתמש אינטראקטיבי יועיל למשתמשי קצה שרוצים "לנסות" ולהתפתח מול ה-API. Ramesh Pidikiti הוביל את היישום של מחולל הקוד הראשוני והמעצב/המפתח Zeke Sikelianos טבע את השם Swagger. פרויקט Swagger API נעשה קוד פתוח בספטמבר 2011. זמן קצר לאחר השחרור, נוספו מספר רכיבים חדשים לפרויקט, כולל אימות עצמאי, תמיכה ב-Node.js ו-[[Ruby on Rails] ]].
בשנותיו הראשונות של סוואגר, המשיכה הצנועה הגיעה מחברות קטנות ומפתחים עצמאיים. לממשקי HTTP בדרך כלל לא היה מנגנון תיאור הניתן לקריאה במכונה, וסוואגר סיפק דרך פשוטה וניתנת לגילוי לעשות זאת. טוני הוזמן לפגישה עם כמה ממובילי המחשבה של תעשיית ה-API כולל ג'ון מוסר (ProgrammableWeb), מארש גרדינר (Apigee, כיום מוצר של גוגל), מרקו פאלאדינו (Kong] ), וקין ליין (API Evangelist) כדי לדון במאמץ סטנדרטיזציה סביב תיאורי API. הפגישה אמנם לא הניבה תוכנית קונקרטית לעשות זאת, אך היא העלתה את סוואגר על המפה כחידוש קריטי בתחום ה-API.
בסיוע השימוש ברישיון הקוד הפתוח של Apache 2.0, החלו מספר מוצרים ושירותים מקוונים לרבות את Swagger בהיצע שלהם, אשר הואץ במהירות לאחר אימוץ על ידי Apigee, Intuit, Microsoft, IBM ואחרות שהחלו לאמץ בפומבי את פרויקט Swagger .
זמן קצר לאחר יצירת Swagger, הוצגו מבנים חלופיים לתיאור ממשקי API של HTTP, כשהפופולריים ביותר הם API Blueprint באפריל 2013 ו-RESTful API Modeling Language (RAML) בספטמבר 2013. בעוד שלמוצרים מתחרים אלו היה גב פיננסי חזק יותר מאשר Swagger , הם התמקדו בתחילה במקרי שימוש שונים מ- Swagger, ונכון לאמצע 2014, העניין ב- Swagger גדל מהר יותר מהשילוב של שני האחרים [מקור: Google Trends].
בנובמבר 2015, SmartBear Software, החברה שתחזק את Swagger, הודיעה שהיא עוזרת ביצירת ארגון חדש, בחסות Linux Foundation, בשם OpenAPI Initiative. מגוון חברות, כולל Google, IBM, ו-Microsoft הן חברות מייסדות.[3]
ב-1 בינואר 2016, מפרט Swagger שונה ל-OpenAPI Specification, והועבר למאגר תוכנה חדש ב-GitHub.[4] למרות שהמפרט עצמו לא שונה, שינוי השם סימן את הפיצול בין פורמט תיאור ה-API וכלי קוד פתוח.
נכון ליולי 2017, כלים של Swagger הורדו למעלה מ-100,000 פעמים ביום, לפי מאגרי Sonatype ו-npm.
שימוש
ניתן לחלק את השימוש בכלים בקוד פתוח של Swagger למקרי שימוש שונים: פיתוח, אינטראקציה עם ממשקי API ותיעוד.
פיתוח ממשקי API
בעת יצירת ממשקי API, ניתן להשתמש בכלי Swagger כדי ליצור באופן אוטומטי מסמך Open API המבוסס על הקוד עצמו. זה מטמיע את תיאור ה-API בקוד המקור של פרויקט ונקרא באופן לא פורמלי פיתוח API של קוד ראשון או מלמטה למעלה.
לחלופין, באמצעות Swagger Codegen, מפתחים יכולים לנתק את קוד המקור ממסמך ה-API הפתוח, וליצור קוד לקוח ושרת ישירות מהעיצוב. זה מאפשר לדחות את היבט הקידוד.
אינטראקציה עם ממשקי API
באמצעות פרויקט Swagger Codegen, משתמשי קצה יוצרים לקוח SDKs ישירות ממסמך OpenAPI, מה שמפחית את הצורך בקוד לקוח שנוצר על ידי אדם. נכון לאוגוסט 2017, פרויקט Swagger Codegen תמך ביותר מ-50 שפות ופורמטים שונים ליצירת SDK של לקוח.
ממשקי API לתיעוד
כאשר מתואר על ידי מסמך OpenAPI, ניתן להשתמש בכלי קוד פתוח של Swagger לאינטראקציה ישירה עם ה-API דרך Swagger UI. פרויקט זה מאפשר חיבורים ישירות לממשקי API חיים באמצעות ממשק משתמש אינטראקטיבי, מבוסס HTML. ניתן להגיש בקשות ישירות מהממשק והאפשרויות שנבדקות על ידי המשתמש בממשק.
ראה גם
הפניות
- ↑ "About". API תיעוד ועיצוב כלי לצוותים | Swagger. נבדק ב-2022-04-24.
- ↑ "FAQ - OpenAPI Initiative". OpenAPI Initiative (באנגלית אמריקאית). נבדק ב-2022-04-24.
- ↑ new-collaborative-project-extend-swagger-specification-building "פרויקט שיתופי חדש להרחבת מפרט Swagger לבניית יישומים ושירותים מחוברים". www.linuxfoundation.org. אורכב מ-media/announcements/2015/11/new-collaborative-project-extend-swagger-specification-building המקור ב-2016-04-27. נבדק ב-2016-04-22.
{{cite web}}: Check|archive-url=value (עזרה); Check|url=value (עזרה) - ↑ [https:/ /github.com/OAI/OpenAPI-Specification "מפרט OpenAPI"].
{{cite web}}: Check|url=value (עזרה); פרמטר לא ידוע|אתר=(עזרה); פרמטר לא ידוע|תאריך=(עזרה)