ホームページ  >  記事  >  バックエンド開発  >  Golang 学習 Web フレームワークの入門

Golang 学習 Web フレームワークの入門

王林
王林オリジナル
2023-06-24 08:33:222009ブラウズ

Golang は、効率性と同時実行性が高いプログラミング言語であり、Golang を使用してさまざまな種類のアプリケーションを構築する開発者が増えています。その中でも、Web アプリケーションは Golang で最も一般的なアプリケーション シナリオの 1 つであり、この記事では、Golang でよく使用されるいくつかの Web フレームワークとその基本的な使い方を紹介します。

1. 共通 Golang Web フレームワーク

  1. Gin

Gin は、豊富な機能を提供し、非常に優れたパフォーマンスを備えた、高速かつ効率的な Web フレームワークです。 Gin の API 設計はシンプルで理解しやすいため、REST API やマイクロサービス アプリケーションの構築に非常に適しています。 Gin は、ミドルウェア、ルーティング グループ化、JSON/XML シリアル化などの一般的な Web 機能を提供します。

  1. Beego

Beego は、ルーティング、ミドルウェア、テンプレート レンダリング、ORM などの一般的な Web コンポーネントを含み、Web アプリケーションを提供する完全な Web フレームワークです。プログラム開発に必要な機能をまとめました。 Beego は大規模な Web アプリケーションを簡単に構築でき、RESTful API、Websocket などの機能をサポートしています。

  1. Echo

Echo は、標準ライブラリといくつかのサードパーティ パッケージを使用していくつかの機能を提供する、軽量、高性能、拡張が簡単な Web フレームワークです。ルーティング、ミドルウェア、テンプレートのレンダリングなどが含まれます。 Echo のパフォーマンスは非常に優れており、RESTful API やマイクロサービスの構築に非常に適しています。

2. Gin フレームワークの開始

導入する最初のフレームワークとして Gin を選択し、Gin を使用して簡単な Web アプリケーションを構築する方法を見てみましょう。

  1. Gin のインストール

次のコマンドを使用して、Gin フレームワークをインストールできます:

go get -u github.com/gin-gonic/gin
  1. Hello World

以下は、Gin フレームワークを使用して作成された Hello World の例です:

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.String(200, "Hello, world!")
    })
    r.Run()
}

まず、Gin フレームワークのパッケージをインポートします。次に、Gin インスタンスを作成し、文字列「Hello, world!」を返す GET ルートを登録します。最後に、Run メソッドを使用して Web アプリケーションを起動し、ポートをリッスンします。

curl を使用してアプリケーションをリクエストする:

$ curl http://localhost:8080/
Hello, world!
  1. ルーティング

ルーティングは、リクエストを関連するハンドラー関数に接続する Web アプリケーションのコア コンポーネントです。

次は簡単な例です:

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()

    r.GET("/ping", func(c *gin.Context) {
        c.String(200, "pong")
    })

    r.GET("/hello/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(200, "Hello, %s", name)
    })

    r.POST("/login", func(c *gin.Context) {
        username := c.PostForm("username")
        password := c.PostForm("password")
        c.JSON(200, gin.H{"username": username, "password": password})
    })

    r.Run()
}

3 つのルートを使用します:

  • /ping ルート、文字列 "pong" を返します;
  • /hello/:name ルートはパラメーター名を受け取り、文字列「Hello, name」を返します。
  • /login ルートは POST リクエストを受け取り、要求されたユーザー名とパスワードを返します。
  1. ミドルウェア

ミドルウェアは、リクエストがハンドラーに到達する前後に操作を実行できる、Gin フレームワークの重要な機能です。

以下は、Gin ミドルウェアの使用例です:

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    "time"
)

func CustomMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        t := time.Now()
        fmt.Println("Starting middleware")
        c.Set("request_time", t)
        c.Next()
        fmt.Println("Ending middleware")
        latency := time.Since(t)
        fmt.Printf("Latency: %v
", latency)
    }
}

func main() {
    r := gin.Default()
    r.Use(CustomMiddleware())

    r.GET("/", func(c *gin.Context) {
        c.String(200, "Hello, world!")
    })

    r.Run()
}

リクエストの開始時刻を記録する CustomMiddleware というミドルウェア関数を作成し、リクエストをハンドラー関数に渡し、リクエストの処理が完了すると終了します。

ミドルウェアを Gin インスタンスに登録し、ルート ルートで単純なハンドラー関数を使用して、「Hello, world!」という文字列を返しました。

アプリケーションを実行すると、出力にミドルウェア レコードが表示されます:

Starting middleware
Ending middleware
Latency: 277.1µs

3. 概要

この記事では、Golang Three Web フレームワークで一般的に使用されるものを簡単に紹介します。 :ジン、ビーゴ、エコー。また、Gin フレームワークを使用して単純な Web アプリケーションを作成する方法と、ルーティングとミドルウェアの使用方法を示しました。

Golang の学習 Web 開発は、Web フレームワークの学習と切り離せません。ただし、Web フレームワークによって対象となるアプリケーションのシナリオやニーズも異なるため、開発者は実際の状況に基づいて最適なフレームワークを選択する必要があります。

以上がGolang 学習 Web フレームワークの入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。