2015-04-16 34 views
-1

這可能是一個非常簡單的問題,但我似乎無法弄清楚。如何用Swagger 2.0獲得Operations對象的方法?獲取操作對象Swagger 2.0的方法

從過渡導: 「最對象的結構發生了變化(如操作對象,參數對象)在其他的變化,在許多情況下,而不是說明該對象的類型,屬性名定向的。到對象將聲明它的類型,例如,對於操作,你將有一個名爲「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不再招搖2.0可用。

回答

0

在swagger 2.0中,操作結構發生變化,所以它不再具有方法類型的屬性。因此,如果您有操作對象,則無法獲取該方法,但是ApiDescription具有HttpMethod屬性,該屬性將指示操作是Get,Put,Post還是Delete。以前的操作是什麼。方法現在可以用

apiDescription.HttpMethod.ToString()