【问题标题】:Getting the method of an Operation Object Swagger 2.0获取 Operation Object Swagger 2.0 的方法
【发布时间】:2015-04-16 19:41:30
【问题描述】:

这可能是一个非常简单的问题,但我似乎无法弄清楚。如何使用 swagger 2.0 获取 Operations 对象的方法?

来自过渡指南: “大多数对象的结构都发生了变化(例如操作对象、参数对象)。在其他变化中,在许多情况下,指向对象的属性名称不会说明对象的类型,而是说明其类型。例如,对于操作,您将有一个名为“get”的属性名称指向一个操作对象。因此,方法字段是从对象本身中删除的。”

https://github.com/swagger-api/swagger-spec/wiki/Swagger-1.2-to-2.0-Migration-Guide

所以我的问题是,如果您有一个操作对象,您将如何获得该方法?具体在 c# 中?

我正在尝试将我的操作过滤器从 1.2 迁移到 2.0

void IOperationFilter.Apply(Swashbuckle.Swagger.Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
        {
            if (apiDescription.ActionDescriptor.ReturnType == typeof(HttpResponseMessage))
            {
                switch (operation.Method)
                {
                    ...

                }
            }

但是 operation.Method 在 swagger 2.0 中不再可用。

【问题讨论】:

    标签: c# swagger swagger-ui


    【解决方案1】:

    在 swagger 2.0 中,操作的结构发生了变化,因此它不再具有方法类型的属性。因此,如果您有操作对象,则无法获取方法,但 ApiDescription 具有 HttpMethod 属性,该属性将指示操作是 Get、Put、Post 还是 Delete。以前的操作。现在可以使用

    检索方法
    apiDescription.HttpMethod.ToString()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-08
      相关资源
      最近更新 更多