2017-03-15 105 views
5

我正在使用Swagger API來記錄我的REST服務。 早些時候,我的控制器方法沒有提供豐富的註釋,所以Swagger API沒有顯示說明,但現在甚至在更新註釋之後就像我沒有在突出顯示區域中獲取方法描述一樣。Swagger API不刷新文檔

/// <summary> 
    /// Gets the consumer scores by retailer id and return id 
    /// </summary> 
    /// <param name="retailerId"></param> 
    /// <param name="returnId"></param> 
    /// <returns></returns> 

enter image description here

我錯過了什麼?

+1

當你說「使用swagger API」時,你是什麼意思?您使用哪種庫來從C#中生成swagger文檔? – mclark1129

+0

我正在使用C#Web API使用'Swashbuckle.AspNetCore'。 – Sameer

回答

4

爲了讓Swashbuckle從您的XML註釋中讀取數據,您需要爲您的目標項目啓用XML文檔文件。除此之外,您需要在啓動配置中將Swashbuckle指向該文件。

Swashbuckle Documentation

打開屬性對話框爲您的項目,點擊「生成」選項卡,並 確保「XML文檔文件」被選中。這將生成一個 文件,其中包含構建時的所有XML註釋。

此時,任何未使用XML註釋註解的類或方法都會觸發構建警告。要剿此,進入 報警代碼「1591」到在 屬性對話框中的「剿警告」字段*

配置Swashbuckle,納入有關文件的XML註釋到 產生揚鞭JSON:

services.AddSwaggerGen(c => 
{ 
    c.SwaggerDoc("v1", 
     new Info 
     { 
      Title = "My API - V1", 
      Version = "v1" 
     } 
    ); 

    var filePath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "MyApi.xml"); 
    c.IncludeXmlComments(filePath); 
} 

註解你與總結,評論和響應標籤的行動

/// <summary> 
/// Retrieves a specific product by unique id 
/// </summary> 
/// <remarks>Awesomeness!</remarks> 
/// <response code="200">Product created</response> 
/// <response code="400">Product has missing/invalid values</response> 
/// <response code="500">Oops! Can't create your product right now</response> 
[HttpGet("{id}")] 
[ProducesResponseType(typeof(Product), 200)] 
[ProducesResponseType(typeof(IDictionary<string, string>), 400)] 
[ProducesResponseType(typeof(void), 500)] 
public Product GetById(int id) 

重建項目以更新XML註釋文件並導航到Swagger JSON端點的 。請注意描述如何映射到 對應的Swagger字段。