如何从servicestack元数据中隐藏swagger ui端点?

时间:2014-01-23 10:26:12

标签: servicestack

ServiceStack.Api.Swagger定义了2个端点

  • 资源和
  • ResourceRequest

swagger-ui使用它们来显示休息文档。如何隐藏它们不显示在servicestack的标准元数据页面中?我无法使用[Restrict]属性修饰它们,因为它们是在ServiceStack.Api.Swagger dll内部定义的。

此致

德克

1 个答案:

答案 0 :(得分:3)

您可以使用添加.NET Attributes at runtime的新v4功能来控制使用ServiceStack的内置Restriction attributes无法控制的服务的可见性,例如要仅允许localhost显示属性,您可以将限制属性添加到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
});