2017-10-17 12 views
1

に表示されません。このタイプにはカスタムモデルバインダーがあり、MapType<>を使用してSwaggerにマッピングされます。タイプはパスパラメータとして経路で使用されルートは、私が(この特定のケースNodaTime.LocalDateに)カスタム型をとるエンドポイントを持って闊歩

、エンドポイントは闊歩/ Swashbuckleに表示されません。しかし、URLパラメータを削除すると(代わりにURLパラメータとして含まれています)、うまく表示されます。

エンドポイントのシンプルバージョン:両方のエンドポイントが実際に動作することを

public class MyController : System.Web.Http.ApiController 
{ 
    [Route("my/route/{date}")] // Doesn't show up 
    [Route("my/route")]  // Does show up 
    [HttpPut] 
    public Task<IHttpActionResult> MyEndpoint(LocalDate date, InputModel inputModel) { 
     // Do stuff... 
    } 
} 

注、1だけ表示されません。タイプをDateTimeに変更すると、両方のエンドポイントが表示されることもありますが、有効な入力セットが変更されるため、これは必要ありません。

+0

有効なパスのように見えないこと、LOCALDATEは – HelderSepu

+0

...それはURLのルートでは表現できないオブジェクトであるので、タイプは、構造体を可能にするモデルバインダーを持っていますISO8601形式の文字列から解析する必要があります(オブジェクトではありません)。エンドポイントは正常に動作します。つまり、問題なくmy/route/2017-10-17で呼び出すことができます。 Swagger/Swashbuckleには表示されません。 https://github.com/heldersepu/SwashbuckleTest/blob/master/Swagger_Test/Controllers/ApiExplorerController.cs –

+1

あなたがGetApiExplorerからすべてのエンドポイントを示すコントローラ/アクションを追加することができますトラブルシューティングするには!私は明日仕事をするときにそれを試してみます。 – HelderSepu

答えて

0

私は、文字列からカスタムバインディングおよびカスタムコンバータを追加することで、この問題を解決しました。 これらの操作は、ApiExplorerがルートを解決するために必要です。その後、スワッガーはルートを解決します。

ここに私の例を参照してください:https://stackoverflow.com/a/47123965/908936

関連する問題