2017-12-18 4 views
0

Swashbuckle은 Swagger API 문서를 만들기 위해 C# XML 주석을 추출하는 훌륭한 작업을 수행합니다. 또한 Swagger는 쿼리 문자열 매개 변수를 문서화하는 기능을 지원합니다. 그러나 쿼리 문자열 매개 변수를 XML로 문서화하여 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> 블록에 두 개의 총알을 추가하는 것을 고려 중입니다. 더 좋은 아이디어?

+0

당신은'ListUsers' 방법에'search' 매개 변수를 추가 할 수없는 이유가 :

내가 함께 끝났다? – Sefe

+0

쿼리 매개 변수를 선택적 매개 변수로 ListUers() 메소드에 추가 할 수있는 방법이 있지만 실제로는 C# .Net에 익숙하지 않으며이를 수행하는 방법을 알지 못합니다. –

+0

'public IHttpActionResult ListUsers (문자열 검색)'이 트릭을해야합니다. 쿼리 문자열에서 설정됩니다. – Sefe

답변

0

@jps가 올바른 방향으로 나를 가리켰습니다. 감사!

/// <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; 
관련 문제