2017-01-05 10 views
0

私はasp.net webapiを使用しており、Swaggerを使用してAutoRest経由でWPFアプリケーション内でRestApiを作成しています。 エラーが発生した場合に、返されたデータをどのように消費するかを調べる際に問題が発生しています。WebApiとSwagger

コントローラは次のとおりです。

AutoMapperのエラーに基づいてWebApiにエラーが表示されてしまいましたが、それが呑み込まれていました。レスポンスにエラーメッセージが返されています。これは素晴らしいことです。

ここでは、この呼び出しの現在のAutoRestコードを示します。

public static int? AddEditContract(this IBuxtedConAPI operations, ContractDto value) 
     { 
      return Task.Factory.StartNew(s => ((IBuxtedConAPI)s).AddEditContractAsync(value), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); 
     } 

あなたが期待しているとおり、intです。コメントを外すと

//[SwaggerResponse(HttpStatusCode.InternalServerError ,Type = typeof(HttpError))] 

int戻り型がオブジェクトに変わります。

本当の質問です。オブジェクトは、エラーが発生した場合は(成功して)簡単なint型だけで返された場合、私は拾うんどのように返された場合はここで はWEBAPI

public async Task<int> SaveContract(ContractDto entity) 
    {   
     using (var db = new BuxtedConAPI()) 
     { 
      var ret = await db.AddEditContractAsync(entity); 
      return (int)ret; 
     } 
    } 

へのWPFからの私のサービスコールです。

ありがとうございます。 Scott

答えて

1

生成してAutoRestに渡すスワッガーファイルを投稿できますか?

戻り値の型がobject(またはすべての可能な応答間で共有される共通基底クラス)になる理由は、AutoRestが明示的に定義された応答を戻り値として処理するためです。例外はdefaultレスポンスにのみ使用されます。

適切な例外を生成する複数のエラー応答を指定する方法を検討しています。

+0

私に戻ってくれてありがとう。 – scottsanpedro

+0

こんにちはギャレット。あなたは最終的な答えとして提案していますか?もしそうなら、私は受け入れます。私はちょうど私がaspにかなり新しいものを見逃していないことを確認したかった。ありがとうScott – scottsanpedro

+0

ええ、エラーレスポンスに 'default'を使うだけで、AutoRestはそれらの例外を生成します。 –

関連する問題