Η ανάπτυξη Ιστού είναι ένα από τα πολλά πεδία στα οποία μπορείτε να χρησιμοποιήσετε το Go. Πολλές εταιρείες και έργα χρησιμοποιούν το Go στο backend των web εφαρμογών τους, κυρίως για την ταχύτητα, την ευκολία χρήσης και το οικοσύστημα πακέτων.

ο net/http Το πακέτο έχει τις περισσότερες από τις λειτουργίες που θα χρειαστείτε για τη δημιουργία εφαρμογών ιστού στο Go. Μπορείτε να χρησιμοποιήσετε άλλα πακέτα από την πλούσια σε λειτουργίες τυπική βιβλιοθήκη. ο κωδικοποίηση Το πακέτο χειρίζεται τη μετατροπή δεδομένων χαμηλού επιπέδου και το html Το πακέτο σάς επιτρέπει να αλληλεπιδράτε με ιστοσελίδες.

Πέρα από αυτό, το οικοσύστημα πακέτων τρίτων της Go παρέχει επιπλέον δυνατότητες για να βοηθήσει την ανάπτυξη ιστού.

1. Το Πλαίσιο Τζιν

Τζιν είναι ένα από τα πιο δημοφιλή πακέτα ανάπτυξης ιστού της Go. Το Gin είναι ένα μικροπλαίσιο υψηλής απόδοσης για τη δημιουργία διαδικτυακών εφαρμογών και μικροϋπηρεσιών στο Go.

Το Gin είναι γρήγορο και παρέχει ενσωματωμένη λειτουργία απόδοσης, ενδιάμεσου λογισμικού και επικύρωσης JSON. Διαθέτει εύκολη διαχείριση σφαλμάτων και δυνατότητα επέκτασης. Μπορείτε να τεκμηριώσετε τις εφαρμογές σας Gin με την προδιαγραφή OpenAPI3 και το swagger.

instagram viewer

Το Gin διαθέτει ένα API τύπου Martini και το έργο ισχυρίζεται ότι είναι σαράντα φορές ταχύτερο. Για μικροϋπηρεσίες, μπορείτε να επαναχρησιμοποιήσετε τα αρθρωτά στοιχεία του Gin για την ανάπτυξη αγωγών διαχείρισης αιτημάτων.

Μπορείτε να εγκαταστήσετε το πλαίσιο Gin με αυτήν την εντολή:

πηγαίνω λάβετε το github.com/gin-gonic/gin

Δείτε πώς μπορείτε να ρυθμίσετε ένα απλό τελικό σημείο αιτήματος με το πλαίσιο Gin.

εισαγωγή (
"github.com/gin-gonic/gin"
"κούτσουρο"
"net/http"
)

funcκύριος() {
router := τζιν. Προκαθορισμένο()

δρομολογητή. GET("/hello", func(πλαίσιο *gin. Συμφραζόμενα) {
συμφραζόμενα. JSON(http. StatusOK, τζιν. H{"επιτυχία": "Επιτυχία έφτασε στο τελικό σημείο"})
})

κούτσουρο. Fatalln (http. ListenAndServe(":8080", μηδέν))
}

Μπορείτε να δημιουργήσετε μια παρουσία δρομολογητή με το Προκαθορισμένο μέθοδος του τζιν πακέτο. ο ΠΑΙΡΝΩ μέθοδος για αιτήματα GET παίρνει τη διαδρομή (τελικό σημείο) και μια δήλωση συνάρτησης χειριστή. Αυτή η συνάρτηση παραδείγματος επιστρέφει a 200 Κωδικός κατάστασης HTTP στον πελάτη και μια επιτυχημένη απάντηση JSON στο σώμα απόκρισης.

2. Το πλαίσιο ινών

Ινα είναι ασφαλές για τη μνήμη, Σαν ExpressJS πλαίσιο που βασίζεται στο απίστευτα γρήγορο γρήγοραhttp πακέτο. Προσφέρει εξαιρετική απόδοση και στοχεύει αρχάριους και έμπειρους προγραμματιστές Javascript backend.

Το Fiber διαθέτει το μεγαλύτερο μέρος της λειτουργικότητας που θα χρειαστείτε σε ένα πλαίσιο υποστήριξης. Χειρίζεται τη δρομολόγηση, την ομαδοποίηση αιτημάτων, την επικύρωση, τα πρότυπα, τα άγκιστρα, τον χειρισμό σφαλμάτων και πολλά άλλα. Το Fiber είναι επεκτάσιμο και μπορείτε να κάνετε το Fiber πιο γρήγορο χρησιμοποιώντας έναν προσαρμοσμένο κωδικοποιητή και αποκωδικοποιητή.

Εγκαταστήστε την πιο πρόσφατη έκδοση (v2) του πλαισίου Fiber με αυτήν την εντολή:

πηγαίνω λάβετε το github.com/gofiber/fiber/v2

Δείτε πώς μπορείτε να ρυθμίσετε ένα απλό τελικό σημείο αιτήματος GET με το πλαίσιο Fiber.

εισαγωγή "github.com/gofiber/fiber/v2"

funcκύριος() {
app := ίνα. Νέος()

εφαρμογή. Get("/hello", func(ctx *fiber. Ctx)λάθος {
ΕΠΙΣΤΡΟΦΗ ctx. SendString ("Γεια")
})

κούτσουρο. Θανατηφόρο (εφαρμ. Ακούω(":8080"))
}

ο Νέος μέθοδος επιστρέφει μια νέα παρουσία μιας εφαρμογής Fiber. ο Παίρνω μέθοδος είναι για τη ρύθμιση ΠΑΙΡΝΩ αιτήσεων. Σε αυτή την περίπτωση, το /hello Το τελικό σημείο επιστρέφει τη συμβολοσειρά Χαίρετε.

Ρυθμίζετε την εφαρμογή για ακρόαση στη θύρα localhost 8080 με το Ακούω μέθοδο της εφαρμογής.

3. Το πλαίσιο της Ίριδας

Το Iris είναι ένα διαπλατφορμικό, αποτελεσματικό, πλήρες, καλά σχεδιασμένο πλαίσιο web. Μπορείτε να το χρησιμοποιήσετε για τη δημιουργία φορητών API και εφαρμογών ιστού υψηλής απόδοσης στο Go. Όπως το Fiber, το Iris is ExpressJS εμπνέει μερικά από τα σχεδιαστικά μοτίβα στο Iris.

Μπορείτε να δημιουργήσετε εφαρμογές χωρίς διακομιστή γρήγορα με το Iris και να τις αναπτύξετε στο AWS, το Netlify και πολλές άλλες υπηρεσίες. Το πακέτο Iris διαθέτει μια εφαρμογή CLI που μπορείτε να χρησιμοποιήσετε για ζωντανή επαναφόρτωση προτύπων Iris και παρακολούθηση της εφαρμογής σας.

Το πακέτο Iris έχει χαρακτηριστικά που κάνουν την ανάπτυξη εξαιρετικά εύκολη. Το Iris διαθέτει ένα API παρόμοιο με το Sinatra, το οποίο εξυπηρετεί την καταγραφή, τη δρομολόγηση, τις συνεδρίες και τα Websockets. Υποστηρίζει επίσης λειτουργίες GRPC, εξυπηρέτησης αρχείων, ελέγχου ταυτότητας, εξουσιοδότησης και δοκιμών.

Εκτελέστε αυτήν την εντολή στο τερματικό του χώρου εργασίας σας για να εγκαταστήσετε το πλαίσιο Iris στις μονάδες Go.

πηγαίνω λάβετε το github.com/kataras/iris/v12@lastest

Δείτε πώς μπορείτε να ρυθμίσετε ένα ΠΑΙΡΝΩ αίτημα με το πλαίσιο Iris για εκτέλεση στη θύρα localhost 8080.

εισαγωγή "github.com/kataras/iris/v12"

funcκύριος() {
app := ίριδα. Νέος() // νέο παράδειγμα Iris

εφαρμογή. Handle("GET", "/hello", func(ctx ίριδα. Συμφραζόμενα) {
_, err := ctx. JSON(ίριδα. Χάρτης{"message": "hello"})

αν λάθος!= μηδέν {
ΕΠΙΣΤΡΟΦΗ
}
})

err := εφαρμογή. Τρέξιμο (ίριδα. Διεύθυνση(":8080"), ίριδα. Χωρίς Σφάλμα διακομιστή (ίριδα. ErrServerClosed))

αν λάθος!= μηδέν {
ΕΠΙΣΤΡΟΦΗ
}
}

ο εφαρμογή μεταβλητή είναι η παρουσία μιας νέας εφαρμογής Iris. ο ΠΑΙΡΝΩ Ο χειριστής επιστρέφει ένα μήνυμα JSON για αίτημα στο /hello Διαδρομή.

4. Το πλαίσιο Beego

Beego είναι ένα εύχρηστο, έξυπνο και υψηλής απόδοσης πλαίσιο Go για τη δημιουργία εφαρμογών ιστού. Η Beego κάνει την κατασκευή αρθρωτών εφαρμογών απλή. Έρχεται με ενσωματωμένο ORM (αντικειμενο-σχεσιακός χάρτης) και δρομολογητή, παράλληλα με τη λειτουργικότητα προτύπων.

Το Beego ενσωματώνει ειδικές δυνατότητες Go με διεπαφές και ενσωμάτωση δομών. Διαθέτει εξαιρετική δομή API, βελτιστοποιημένη για ταχύτητα με υποστήριξη συνεδρίας και ανάπτυξης και εσωτερίκευση.

Η Beego είναι ευρέως διαδεδομένη και πολλές εταιρείες, από την Opera έως τη 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
ιστός. Τρέξιμο() // εκτέλεση εφαρμογής beego
}

ο ControllerInstance Το struct είναι το σημείο εισόδου της εφαρμογής Beego. ο Παίρνω Η συνάρτηση χειριστή περιέχει τη λογική για το α ΠΑΙΡΝΩ αίτημα προς το /hello τελικό σημείο. Επιστρέφει τη συμβολοσειρά "hello world" ως απάντηση.

5. The Revel Framework

Διασκεδάζω λάμπει για την ευελιξία που παρέχει για τη δημιουργία διαδικτυακών εφαρμογών. Μπορείτε να χρησιμοποιήσετε την ασφαλή για τον τύπο δρομολόγηση της Revel, να δημιουργήσετε ελεγκτές και να χρησιμοποιήσετε Πρότυπα μετάβασης με τον Revel.

Το Revel παρέχει λειτουργικότητα για δρομολόγηση, εύκολη κωδικοποίηση και αποκωδικοποίηση JSON και χειρισμό συνεδρίας. Περιλαμβάνει επίσης λειτουργίες για το χειρισμό της προσωρινής αποθήκευσης, του εντοπισμού σφαλμάτων και της δοκιμής εφαρμογών Ιστού. Η Revel διαθέτει ένα πακέτο CLI για τη δημιουργία CLI για τις εφαρμογές σας. Μπορείτε να προβάλετε στατικά αρχεία με το Revel και να δημιουργήσετε εφαρμογές συνομιλίας με τη λειτουργία Websocket του.

Εγκαταστήστε το πλαίσιο Revel στον κατάλογο του έργου σας με αυτήν την εντολή:

πηγαίνω λάβετε το github.com/revel/revel

Είναι εύκολο να ρυθμίσετε μια εφαρμογή Revel. Ακολουθεί μια απλή λειτουργία χειριστή για α ΠΑΙΡΝΩ ζητήστε τελικό σημείο με το πλαίσιο Revel.

εισαγωγή (
"github.com/revel/revel"
)

τύπος Μοντέλο struct { // απλή δομή μοντέλου
Μήνυμα σειρά`json:"μήνυμα"`
Περιγραφή σειρά`json:"περιγραφή"`
}

τύπος App struct {
*διασκεδάζω. Ελεγκτής // σημείο εισόδου για τα αιτήματα
}

func(εφαρμογή εφαρμογής)Χαίρετε()διασκεδάζω.Αποτέλεσμα {
μοντέλο := μοντέλο{
Μήνυμα: "επιτυχία",
Περιγραφή: "Γεια!, Κόσμος",
}

εφαρμογή. Απάντηση. ContentType = "application/json"
ΕΠΙΣΤΡΟΦΗ εφαρμογή. RenderJSON(μοντέλο)
}

ο App Το struct είναι το σημείο εισόδου της εφαρμογής Revel. Οι χειριστές σας θα εφαρμόσουν τη δομή της εφαρμογής. Ο τύπος περιεχομένου απάντησης είναι JSON και το Χαίρετε Η συνάρτηση χειριστή επιστρέφει μια κωδικοποιημένη δομή JSON.

Προσοχή στη διαφορά μεταξύ δρομολογητών και πλαισίων

Θα βρείτε πολλά πακέτα ιστού στο οικοσύστημα Go, τα περισσότερα από τα οποία είναι δρομολογητές ή πλαίσια. Οι δρομολογητές προορίζονται για λήψη αιτημάτων μέσω του πρωτοκόλλου HTTP.

Θα χρειαστείτε επιπλέον πακέτα για να εργαστείτε με δρομολογητές. Όπως αυτά σε αυτό το σεμινάριο, τα περισσότερα πλαίσια περιλαμβάνουν ενσωματωμένους δρομολογητές μαζί με άλλες λειτουργίες.