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

ה net/http לחבילה יש את רוב הפונקציונליות שתצטרך לבניית יישומי אינטרנט ב-Go. אתה יכול להשתמש בחבילות אחרות מהספרייה הסטנדרטית העשירה בתכונות. ה הַצפָּנָה החבילה מטפלת בהמרת נתונים ברמה נמוכה וב- html החבילה מאפשרת לך ליצור אינטראקציה עם דפי אינטרנט.

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

1. מסגרת הג'ין

ג'ין היא אחת מחבילות פיתוח האינטרנט הפופולריות ביותר של Go. Gin היא מיקרו-מסגרת בעלת ביצועים גבוהים לבניית יישומי אינטרנט ומיקרו-שירותים ב-Go.

Gin הוא מהיר ומספק פונקציונליות מובנית של עיבוד, תוכנת ביניים ואימות JSON. הוא מתגאה בניהול שגיאות קל ובאפשרות להרחבה. אתה יכול לתעד את יישומי הג'ין שלך עם מפרט ה-OpenAPI3 וה-Swaggger.

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

instagram viewer

אתה יכול להתקין את מסגרת Gin עם הפקודה הזו:

ללכת קבל github.com/gin-gonic/gin

הנה איך להגדיר נקודת קצה פשוטה של ​​בקשה עם מסגרת הג'ין.

יְבוּא (
"github.com/gin-gonic/gin"
"עֵץ"
"נטו/http"
)

funcרָאשִׁי() {
נתב := ג'ין. בְּרִירַת מֶחדָל()

נתב. GET("/שלום", func(הקשר *ג'ין. הֶקשֵׁר) {
הֶקשֵׁר. JSON(http. סטטוס בסדר, ג'ין. H{"success": "פגע בהצלחה בנקודת הקצה"})
})

עֵץ. פתאלן (http. ListenAndServe(":8080", אֶפֶס))
}

אתה יכול ליצור מופע נתב עם בְּרִירַת מֶחדָל שיטת ה ג'ין חֲבִילָה. ה לקבל שיטה עבור בקשות GET לוקחת את הנתיב (נקודת קצה) והצהרת פונקציית מטפל. פונקציית דוגמה זו מחזירה את a 200 קוד מצב HTTP ללקוח ותגובת JSON מוצלחת בגוף התגובה.

2. מסגרת הסיבים

סִיב הוא בטוח לזיכרון, דמוי ExpressJS מסגרת בנויה על המהירה להפליא מהירhttp חֲבִילָה. הוא מציע ביצועים מעולים ומכוון למפתחי Javascript backend מתחילים ומנוסים.

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

התקן את הגרסה העדכנית ביותר (v2) של מסגרת Fibre עם הפקודה הזו:

ללכת קבל github.com/gofiber/fiber/v2

כך תוכל להגדיר נקודת קצה פשוטה לבקשת GET עם מסגרת Fiber.

יְבוּא "github.com/gofiber/fiber/v2"

funcרָאשִׁי() {
אפליקציה := סיבים. חָדָשׁ()

אפליקציה. Get("/שלום", func(ctx *סיבים. Ctx)שְׁגִיאָה {
לַחֲזוֹר ctx. SendString("שלום")
})

עֵץ. קטלני (אפליקציה. להקשיב(":8080"))
}

ה חָדָשׁ השיטה מחזירה מופע חדש של אפליקציית Fiber. ה לקבל השיטה היא להגדרה לקבל בקשות. במקרה זה, ה /hello נקודת קצה מחזירה את המחרוזת שלום.

אתה מגדיר את האפליקציה להאזנה ביציאת localhost port 8080 עם ה להקשיב שיטת האפליקציה.

3. מסגרת האיריס

Iris היא מסגרת אינטרנט חוצת פלטפורמות, יעילה, מלאה ומעוצבת היטב. אתה יכול להשתמש בו כדי לבנות ממשקי API ניידים ואפליקציות אינטרנט בעלי ביצועים גבוהים ב-Go. כמו Fiber, Iris is ExpressJS מהווה השראה לכמה מדפוסי העיצוב באיריס.

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

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

הפעל פקודה זו בטרמינל של סביבת העבודה שלך כדי להתקין את מסגרת Iris במודולי ה-Go שלך.

ללכת קבל github.com/kataras/iris/v12@lastest

כך תוכל להגדיר א לקבל בקש עם המסגרת של Iris לפעול על יציאת localhost 8080.

יְבוּא "github.com/kataras/iris/v12"

funcרָאשִׁי() {
אפליקציה := איריס. חָדָשׁ() // מופע חדש של Iris

אפליקציה. Handle("GET", "/hello", func(קשתית ctx. הֶקשֵׁר) {
_, טעות := ctx. JSON(iris. מפה{"message": "שלום"})

אם טעות != אֶפֶס {
לַחֲזוֹר
}
})

טעות := אפליקציה. רוץ (איריס. Addr(":8080"), איריס. WithoutServerError (iris. ErrServerClosed))

אם טעות != אֶפֶס {
לַחֲזוֹר
}
}

ה אפליקציה משתנה הוא המופע של אפליקציית Iris חדשה. ה לקבל המטפל מחזיר הודעת JSON לבקש ב- /hello מַסלוּל.

4. מסגרת הביגו

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

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

Beego נפוץ, וחברות רבות, מאופרה ועד Huawei, Tencent ו-Weico, משתמשות ב-Beego בייצור.

אתה יכול להשתמש בפקודה זו כדי להתקין את Beego Framework בפרויקט שלך.

ללכת קבל -u github.com/beego/beego/v2

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

יְבוּא "github.com/beego/beego/v2/server/web"

סוּג ControllerInstance struct {
אינטרנט. בקר // נקודת כניסה לאפליקציית beego
}

func(בקר *ControllerInstance)לקבל() {
בקר. Ctx. WriteString ("שלום עולם")
}

funcרָאשִׁי() {
אינטרנט. נתב("/hello", &ControllerInstance{}) // הרכבה עם ביגו
אינטרנט. לָרוּץ() // הפעלת אפליקציית beego
}

ה ControllerInstance struct היא נקודת הכניסה של אפליקציית Beego. ה לקבל פונקציית המטפל מכילה את ההיגיון עבור a לקבל בקשה ל /hello נקודת קצה. זה מחזיר את המחרוזת "שלום עולם" כתגובה.

5. ה-Revel Framework

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

Revel מספק פונקציונליות לניתוב, קידוד ופענוח JSON קלים וטיפול בהפעלה. זה כולל גם פונקציות לטיפול במטמון, איתור באגים ובדיקה של אפליקציות אינטרנט. ל-Revel יש חבילת CLI לבניית CLIs עבור האפליקציות שלך. אתה יכול להגיש קבצים סטטיים עם Revel ולבנות אפליקציות צ'אט עם הפונקציונליות של Websocket שלה.

התקן את מסגרת Revel בספריית הפרויקט שלך עם הפקודה הזו:

ללכת קבל github.com/revel/revel

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

יְבוּא (
"github.com/revel/revel"
)

סוּג דֶגֶם struct { // מבנה מודל פשוט
הוֹדָעָה חוּט`json:"הודעה"`
תיאור חוּט`json:"תיאור"`
}

סוּג אפליקציה struct {
*מַרזֵחַ. בקר // נקודת כניסה לבקשות
}

func(אפליקציה אפליקציה)שלום()מַרזֵחַ.תוֹצָאָה {
דגם := דגם{
הודעה: "הצלחה",
תיאור: "שלום!, עולם",
}

אפליקציה. תְגוּבָה. ContentType = "application/json"
לַחֲזוֹר אפליקציה. RenderJSON(מודל)
}

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

היזהר מההבדל בין נתבים למסגרות

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

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