2014-01-23 60 views
2

的ServiceStack.Api.Swagger定義2個端點如何從servicestack元數據隱藏swagger ui端點?

  • 資源與
  • ResourceRequest

這些在爲了顯示靜止文檔中使用由招搖-UI。如何將它們隱藏在servicestack的標準元數據頁面中?我無法用[Restrict]屬性來修飾它們,因爲它們是在ServiceStack.Api.Swagger dll內部定義的。

問候

德克

回答

3

您可以使用添加.NET Attributes at runtime的新V4功能來控制服務的知名度,你不ServiceStack的內置Restriction attributes,例如控制只允許屬性爲本地主機,您可以添加限制在APPHOST屬性的具體要求DTO的可見:

typeof(Resources) 
    .AddAttributes(new RestrictAttribute { VisibleLocalhostOnly = true }); 
typeof(ResourceRequest) 
    .AddAttributes(new RestrictAttribute { VisibleLocalhostOnly = true }); 

要隱藏它的所有請求,您可以設置能見度無:

typeof(Resources) 
    .AddAttributes(new RestrictAttribute { VisibilityTo=RequestAttributes.None }); 
typeof(ResourceRequest) 
    .AddAttributes(new RestrictAttribute { VisibilityTo=RequestAttributes.None }); 

注意他們仍然在開發模式中顯示時Debug=true這對於調試建立自動啓用,以模擬一個發佈版本,您可以在設置爲false,例如:

SetConfig(new HostConfig { 
    DebugMode = false 
}); 
+0

太棒了! V4岩石!謝謝! –