コンテンツにスキップ

はじめに

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は凍結されており、新しいリリースで既存のコードが壊れることはありません。