2017-12-18 24 views
0

Swashbuckleは、Swagger APIのドキュメントを作成するためにC#XMLコメントを抽出する素晴らしい仕事をしています。 Swaggerはクエリ文字列パラメータのドキュメント化をサポートしています。しかし、Swashbuckleがそれらをエクスポートするようにクエリ文字列パラメータをXMLで文書化する方法がある場合は、それを見つけられません。出力には表示されませんSwashbuckleでクエリ文字列パラメータを文書化するにはどうすればよいですか?

/// <summary> 
    /// List all users 
    /// </summary> 
    /// <param name="?search">String to search for in user IDs and names</param> 
    /// <returns>An array of users</returns> 
    /// <response code="200">OK</response> 
    [ResponseType(typeof(IEnumerable<User>))] 
    [Route("")] 
    [HttpGet] 
    public IHttpActionResult ListUsers() 
    { 
     IEnumerable<User> users; 

     // "?search=<substring>" in the URI searches for users 
     // Adapted from https://stackoverflow.com/questions/10656841 
     var searchString = Request.GetQueryNameValuePairs() 
      .Where(nv => nv.Key == "search") 
      .Select(nv => nv.Value) 
      .DefaultIfEmpty("") 
      .FirstOrDefault(); 

そしてsearch

は、私のようなものを持っています。私は?を取り除こうとしましたが、それは助けになりませんでした。私は、XMLコメントがこれを直接サポートしていないと思われます。それが本当であれば、ベストプラクティスの仕事を探しています。 <remarks>ブロックに2つの弾丸を追加することを検討しています。どんな良いアイデアですか?

+0

? – Sefe

+0

オプションのパラメータとしてクエリ文字列パラメータを 'ListUsers()'メソッドに追加する方法があれば、私はC#.Netには比較的新しいので、これを行う方法はわかりません。 –

+0

'public IHttpActionResult ListUsers(文字列検索)'はこのトリックを行うべきです。クエリ文字列から設定されます。 – Sefe

答えて

0

@jpsは正しい方向に私を指摘しました。ありがとう!

私は終わった:あなたは `ListUsers`メソッドに` search`パラメータを追加することはできません理由がある

/// <summary> 
    /// List all users 
    /// </summary> 
    /// <param name="search">String to search for in user IDs and names</param> 
    /// <returns>An array of users</returns> 
    /// <response code="200">OK</response> 
    [ResponseType(typeof(IEnumerable<User>))] 
    [Route("")] 
    [HttpGet] 
    public IHttpActionResult ListUsers([Optional]string search) 
    { 
     IEnumerable<User> users; 

     var searchString = search == null ? string.Empty : search; 
関連する問題