Open API形式のAPI仕様に基づいてhttpクライアントライブラリを生成しようとしています。
生成に使用したコマンドは次のようなものです
openapi-generatorgenerate-g go -i spec.yaml -o code-gen-go -p packagename=mypackage
これにより、生成されたコードに次のような構造が作成されます
リーリーhttpclient
フィールドはリクエストの作成に使用されます。理想的には、このパッケージをインポートし、クライアントを httpclient
フィールドに割り当て、これを通じて http リクエストを実行できるようにする必要があります。
ただし、私の場合、リクエストを行うにはカスタム ライブラリを使用する必要があります。私のライブラリが customhttp
であるとします。このライブラリを使用して、*customhttp.client
タイプのクライアント (これは単なる *http.client
タイプのクライアントですが、いくつかの追加プラグインが含まれています) を作成する必要があります。これどうやってするの?自動生成されたコードを手動で更新せずにこれを行うことは可能ですか?
httpclient
のタイプが do
メソッドを実装するインターフェイスであるコードを生成できれば、クライアントにそれを割り当てることができると思います。でも、私も何をしたらいいのか分かりません。
リポジトリからテンプレートを取得します:
リーリーこれでローカル コピーが作成されました。カスタマイズするテンプレート (この場合は configuration.mustache
) を変更します。
ここで、必要なコードとモジュールをインポートし、必要に応じて既存のコードの名前を変更できます。カスタム クライアント ライブラリを追加します。
引き続き独自のテンプレートを使用してコードを生成します:
リーリー生成されたコードには、カスタム コードとライブラリが含まれています。このアプローチでは、必要な柔軟性が得られますが、テンプレートのカスタマイズされたバージョンを維持するコストがかかります (たとえば、将来更新が必要になる可能性があります)。
以上がopenapi 仕様から生成されたクライアント go コードでカスタム go http クライアントを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。