这可能是一个非常简单的问题,但我似乎无法弄明白。如何使用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)
{
...
}
}
但是,在swagger 2.0中不再提供operation.Method。
答案 0 :(得分:1)
在swagger 2.0中,操作结构发生变化,因此它不再具有方法类型的属性。因此,如果您拥有操作对象,则无法获取该方法,但ApiDescription具有HttpMethod属性,该属性将指示操作是Get,Put,Post还是Delete。之前的操作是什么。现在可以使用
检索方法apiDescription.HttpMethod.ToString()