私がソフトウェア エンジニアとして働いている会社では、マイクロ サービスと通信する API を開発中です。これは、自社の製品だけでなく、自社の製品でも使用される予定です。クライアントが使用できる API。これに Golang を選択した総合的な決め手は速度でした。 Go は実行時間が速いだけでなく、メモリ消費量が少なく、効率的な同時実行性も備えています。
エンドポイントを指定する最初のステップに関しては、コードとドキュメント間の不一致を避けたかったので、コード内でエンドポイントを指定するソリューションを探していました。弊社の CEO も Python FastApi を使用した同じアプローチを使用していたので、Go 用の FastApi ソリューションをグーグルで検索したところ、Huma を見つけました。 Huma を使用すると、コードから OpenAPI ドキュメントを自動的に生成でき、信号要素を使用して見栄えの良いドキュメントを生成します。 Go タイプから JSON スキーマを生成し、パス/クエリ/ヘッダーのパラメーター、本文、応答ヘッダーなどに静的型付けを使用します。入力モデルの検証とエラー処理は、JSON スキーマに基づいて自動的に行われます。
このフレームワークはかなり柔軟で、たとえば自分のルーターを使用できることがわかりましたが、デフォルトのルーターとして使用する Chi にこだわっただけです。いくつかの欠点があります。たとえば、配列クエリ パラメーターをサポートしていないようなので、フィルターをカンマで区切っています。しかし、それは契約の妨げにはなりませんでした。
今後の投稿では、Go Huma での経験と学びについてさらに詳しく書く予定ですが、これまでのところ、それが目的に適っていると感じています。
以上がAPI エンドポイントの開発に Go Huma フレームワークを選択した理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。