golang-Martiniフレームワークの基本的な使用方法

5154 ワード

Martini
Martiniはモジュール化されたWebアプリケーションを記述するために生まれた強力なGO言語フレームワークであり、その中に大量のWebツールパッケージが集積され、開発者の使用を極めて便利にし、コードをより簡潔で明確にし、開発効率を高めた.
単純な応用
使用前にmartiniパッケージをインストールする必要があります
go get github.com/go-martini/martini

インストールが完了すると使用できます.まず、フレームワークを理解するための簡単なコードを見てみましょう.
package main

import "github.com/go-martini/martini"

func main() {
     
  m := martini.Classic()
  m.Get("/", func() string {
     
    return "Hello world!"
  })
  m.Run()
}

コアMartini
Martiniをより迅速に有効にするためにmartiniが提供された.Classic()メソッドは、使用するたびに煩雑なプログラミングを回避し、開発プロセスを簡素化するために、いくつかの基本的な操作を一歩前進させる.
  m := martini.Classic()
  // ... middleware and routing goes here
  m.Run()

プロセッサー
Get処理のようなイベントの処理に使用されるのはhttpのrequest要求でありfuncに処理方法を書き込む
m.Get("/", func() {
     
  println("hello world")
})

うんてん
上記のコードを実行
go run main.go

実行後、ローカルサーバが起動する、デフォルトのリスニングポートはlocalhost:3000である.もちろん、自分でポートを設定することもできます
  m := martini.Classic()
  // ...
  m.RunOnAddr(":8080")

フレームワークの利点
  • の使用は極めて簡単である.
  • 無侵入式の設計.
  • は他のGo言語パッケージとよく連携して使用されています.
  • 超絶経路マッチングとルーティング.
  • モジュール化の設計-機能部品の挿入が容易であり、引き抜きも容易である.
  • には多くのミドルウェアが直接使用できる.
  • のフレーム内にはすでに良い開梱即用の機能サポートがある.
  • 完全互換http.HandlerFuncインタフェース

  • 常用ミドルウェア
  • acceptlang-Accept-Language HTTPヘッダを解析するプロセッサ.
  • accessflags-アクセス制御プロセッサを有効にする.
  • auth-認証プロセッサ.
  • binding-raw要求が構造体(structure)内のプロセッサにマッピング/検証される.
  • cors-CORSをサポートするプロセッサを提供します.
  • csrf-アプリケーションにCSRF保護を提供します.
  • encoder-複数のフォーマットのデータレンダリングまたはコンテンツ交渉のための符号化サービスを提供します.
  • gzip-giz方式で要求情報を圧縮するプロセッサ.
  • gorelic-NewRelicミドルウェア
  • logstasher-logstashログ互換JSONミドルウェア
  • method-要求ヘッダまたはフォームドメインを介してHTTPメソッドを上書きします.
  • oauth 2-OAuth 2.0ベースのアプリケーション登録プロセッサ.Google、Facebook、Githubのログインをサポートします.
  • permissions 2-ユーザー、ログインステータス、およびパーミッションコントローラ
  • を追跡
  • render-JSONとHTMLテンプレートをレンダリングするプロセッサ.
  • secure-いくつかのセキュリティ面での迅速なソリューションを提供します.
  • sessions-Sessionサービスをサポートするプロセッサを提供します.
  • sessionauth-ルーティングにログインを必要とする簡単な方法を提供し、Sessionでユーザログイン
  • を処理する.
  • strip-指定したURL接頭辞をフィルタします.
  • strip-URL接頭辞剥離.
  • staticbin-バイナリデータから静的ファイルサービスを提供するプロセッサ.
  • throttle-要求レート調整ミドルウェア.
  • vauth-webhook認証を担当するプロセッサ(現在GitHubとTravisCIをサポートしています).
  • web - hoisie web.go’s Context