【问题标题】:How do I properly use the Api Attribute in ServiceStack to name a service in SwaggerUI?如何正确使用 ServiceStack 中的 Api 属性在 SwaggerUI 中命名服务?
【发布时间】:2016-11-14 13:31:00
【问题描述】:

使用 Swagger-UI 和 ServiceStack,我正在尝试使用 Api 属性将我的服务命名为更简洁。

我很难确定属性需要在哪里才能将 description 属性添加到由 swagger 创建的 resources 端点中的 api。

我有一个基本请求,它被我的客户端点的其他几个请求继承。 Api 属性仅在放置在此特定请求 dto 上时才有效。如果我把它移到另一个,它就会停止工作。这是我的招摇页面的示例:

下面是代码:

这是似乎不起作用的代码:

我想为每项服务起一个好记的名称。谢谢!

编辑:我确实在 ServiceStack 代码库中找到了一些代码,表明它正在寻找FirstAttribute。我尝试通过更改事物的顺序进行测试,但也没有得到预期的结果。如果有帮助,我正在查看 AttributeExtensions.cs

【问题讨论】:

    标签: servicestack swagger-ui


    【解决方案1】:

    您可以使用[Api("API Description")][Description("API Description")] 将描述添加到单个服务,尽管这并不总是直接映射到 Swagger 路由描述,因为 Swagger UI 将多个路由分组在单个顶级路由下,该路由涵盖共享顶级路由的多个不同服务。

    但是您可以使用RouteSummary 字典在SwaggerFeature 上指定路由摘要,例如:

    Plugins.Add(new SwaggerFeature {
        RouteSummary = {
            { "/top-level-path", "Route Summary" }
        }
    });
    

    【讨论】:

    • 嗨,mythz,有道理。你是说没有办法直接设置swagger会显示什么?如果我将它添加到特定路线的所有 dto 中,它会起作用吗?即所有路由以“/marketing”开头的 dto(这是我假设 swagger 正在做的事情)?
    • @IronicMuffin 仅供参考我添加了一个使用 SwaggerFeature 上的 RouteSummary 功能来指定路线摘要描述的示例。
    • 谢谢 - 我没有意识到这是一个选项!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多