はじめに
GinはGo言語(Golang)で書かれたWebフレームワークです。Martiniに似たAPIを備えていますが、httprouterのおかげで最大40倍高速なパフォーマンスを実現しています。パフォーマンスと高い生産性を求めるなら、Ginを気に入るでしょう。
このセクションでは、Ginとは何か、どのような問題を解決するのか、そしてプロジェクトにどのように役立つのかを説明します。
もしGinをプロジェクトに導入する準備ができているなら、クイックスタートをご覧ください。
特徴
高速
基数木ベースのルーティング、少ないメモリ使用量。リフレクション不使用。予測可能なAPIパフォーマンス。
ミドルウェアサポート
受信したHTTPリクエストは、ミドルウェアのチェーンと最終アクションで処理できます。 例:Logger、認可、GZIP、そして最終的にDBへのメッセージ投稿。
クラッシュフリー
GinはHTTPリクエスト中に発生したpanicをキャッチしてリカバリできます。これにより、サーバーは常に利用可能な状態を維持します。例えば、このpanicをSentryに報告することも可能です!
JSONバリデーション
GinはリクエストのJSONをパースしてバリデーションできます。例えば、必須値の存在チェックなどが可能です。
ルートグルーピング
ルートをより適切に整理できます。認可が必要なルートと不要なルート、異なるAPIバージョンなど。さらに、グループはパフォーマンスを低下させることなく無制限にネストできます。
エラー管理
Ginは、HTTPリクエスト中に発生したすべてのエラーを収集する便利な方法を提供します。最終的に、ミドルウェアでログファイルやデータベースへの書き込み、ネットワーク経由の送信が可能です。
組み込みレンダリング
GinはJSON、XML、HTMLレンダリングのための使いやすいAPIを提供します。
拡張可能
新しいミドルウェアの作成はとても簡単です。サンプルコードをご覧ください。
Gin v1. 安定版
- ゼロアロケーションルーター。
- 依然として最速のHTTPルーターおよびフレームワーク。ルーティングからレスポンス書き込みまで。
- 完全なユニットテストスイート。
- 実戦で検証済み。
- APIは凍結されており、新しいリリースで既存のコードが壊れることはありません。