1

这是我的第一个 web api,第一个 web 应用程序,也是我第一次通过 swashbuckler 使用 swagger。我将 TPH 用于我的设备数据库表。
例如,我有一个名为设备的基类,其中有几个从设备继承的子类。(这不是真正的代码,所以我没有把所有的公众等)
正如我所期望的那样,当我在浏览器中运行 swagger 时,模型描述只是返回设备类的模型,
我用谷歌搜索了如何显示所有可能的模型但是无法理解这些回复,因为它们与 c# 或使用文档注释的 api 控制器无关,或者它们是为比我更了解这一点的人编写的。
任何人都可以发布一个例子,或者请给我一个初学者教程,关于如何让所有可能的模型大摇大摆。我不得不编写几个不同的 api 调用来解决这个问题,只是为了显示模型。
谢谢

class equipment
{
  public int id{get;set;}
  public int foo{get;set;}
  public int bar{get;set;}
}

class bucket : equipment
{      
  public int booboo{get;set;}
}
class mop : equipment
{
  public int lala{get;set;}
}


// equipmentcontroller class get function

/// <summary>
/// Returns a piece of equipment.<br/>
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[Route(@"{id:int}"), ResponseType(typeof(equipment))]
public IHttpActionResult GetMop(int id)
{
  return result != null ? (IHttpActionResult)Ok(GetMop[id]) : NotFound();
}
4

1 回答 1

1

你的建议是不可能的。在 Swagger 中,对操作的响应定义基本上是不同 HTTP 状态码到特定响应对象的映射。(看看http://swagger.io/specification/#responsesObject

您不可能表示操作的 200 OK 可以返回表示拖把的响应或表示桶的响应。

您提到“我必须编写几个不同的 api 调用来解决这个问题,只是为了显示模型。”,这是我对 RESTful API 的期望。不同类型的资源由不同的端点处理。

于 2016-05-01T11:21:56.647 回答