/note/tech

GoのAPI開発が変わる!GinやChiに乗せるOpenAPI層「huma」の魅力

humaの本当の立ち位置は、「GinやChiなどの既存ルーターの上に乗せて、型安全なリクエスト処理とOpenAPIドキュメントの自動生成を提供する層」 なのです。

huma自体はHTTPリクエストのルーティング(URLパスと関数の紐付け)を行いません。ルーティングは Gin、Chi、Echo、あるいは標準の net/http に任せます。humaは、そのルーターの「ハンドラー(コントローラー)」として機能し、以下の役割を担います。

  1. リクエストの型安全なパースと自動バリデーション
  2. レスポンスの型安全なシリアライズ
  3. Goの構造体(コード)からのOpenAPI 3.1仕様書とJSON Schemaの完全自動生成

つまり、humaは 「HTTPパッケージのようなもの」ではなく、「GinやChiをFastAPIのように進化させるための拡張パーツ」 と捉えるのが正解です。

MEMO: