Azure REST API アプリを発行すると、奇妙な結果が表示されます
1) 「すべての」レコードの Get メソッドは期待どおりに機能し、次のように生成されます。
public async Task<HttpOperationResponse<IList<DomainType>>> GetAllDomainObjectsWithOperationResponseAsync(...);
2) Get by id
、Update
、Delete
およびCreate
メソッドの場合object
、ドメイン オブジェクトの代わりに生成されます。
async Task<HttpOperationResponse<object>> DeleteDomainObjectByIdWithOperationResponseAsync(..)
その結果、この Delete、Update、Create、および GetById メソッドを使用すると、サービスが機能しません。object
手動でそれぞれのドメイン タイプに置き換えると、期待どおりに動作しますが、サービスを公開するたびに間違ったコードが再作成されます...
SwaggerConfig.cs (IncludeParameterNamesInOperationIdFilter
たとえば有効) からいくつか試してみましたが、この場合は役に立たないようです。
これを引き起こしている原因とそれを処理する方法についてのアイデアはありますか?
DateTime
PS asDateTimeOffset?
やbyte
as を生成するなど、もっと不快な動作に気付きましたが、それは我慢byte[]
できます。定期的に戦いたくないのは、生成されたすべてのコードを調べて、object
型を適切なドメイン型に変更することです。この場合、コンパイラは役に立ちません...
編集
@olydis からのコメントによると、生成された swagger 定義ファイルに form の戻り値の型定義が欠落していることが判明しました$ref, "#/definition/domain-type"
。
MVA コースでは、Azure App Service の習得(モジュール 4. ディスカバリーの統合のデモンストレーション、3:33 前後) に、生成された Swagger 定義ファイルのサンプルが表示され、これらの型定義が存在します。Swashbuckle がこの情報を生成しない原因は何ですか? 最新の Swashbuckle バージョン 5.xx を持っています。Swashbuckle が Swagger ファイルを正しく生成するために、ドメイン タイプが満たさなければならない前提条件はありますか?
編集#2
現在の回避策
REST API クライアントを生成する前に、生成された Swagger 定義ファイルを手動で編集する