2016-12-28 58 views
0

我已經使用Swashbuckle以下動作Swashbuckle的OData映射與EnableUnqualifiedNameCall

POST /odata/Individuals({individualId})/Default.SendEmail

揚鞭文檔生成是安裝和配置用於的OData並將其正確記錄。

當我使不合格的名義接聽電話與

config.EnableUnqualifiedNameCall(true); 

路線與正常工作

POST /的OData /個人({individualId})/ SendEmail

然而揚鞭仍用「默認」顯示原件。前綴,並且該測試不再適用於Swagger UI。

我該如何允許Default.SendEmail和SendEmail,或者讓Swagger根據EnableUnqualifiedNameCall正確更新?

回答

0

同樣的事情發生在我身上,我發現解決它的唯一方法是用documentFilter中的正則表達式去除前綴。

c.DocumentFilter(() => new SwaggerDocumentFilter());

class SwaggerDocumentFilter : IDocumentFilter 
{ 
    public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer) 
    { 
    swaggerDoc.paths = swaggerDoc.paths.Select(entry=> 
     new { 
     key = new Regex(ODataNameSpace + @"\.", 
        RegexOptions.Compiled | RegexOptions.IgnoreCase) 
      .Replace(entry.key, string.Empty), 
     value = entry.Value 
    }) 
    } 
} 

得到相同的命名空間中ODataConventionModelBuilder對象的屬性設置(regretfuly,刪除它不是一個有效的選項)