【发布时间】:2016-04-27 23:30:49
【问题描述】:
这是我的第一个 web api,第一个 web 应用程序,也是我第一次通过 swashbuckler 使用 swagger。
我正在为我的设备数据库表使用 TPH。
例如,我有一个名为设备的基类,其中有几个从设备继承的子类。 (这不是真正的代码,所以我没有公开所有的公众等)
正如我所期望的那样,当我在浏览器中运行 swagger 时,模型描述只返回设备类的模型
我已经用谷歌搜索了如何显示所有可能的模型,但无法理解回复,因为它们与 c# 或使用 cmets 文档的 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();
}
【问题讨论】:
-
在网络上公开接口和继承是一个坏主意(更糟糕的是公开你的数据库实体),没有任何形式的松散耦合序列化程序支持它没有自定义黑客(例如 wcf 或 json 自定义类型) 例如,想想您在 xsd 中如何描述它。我见过的所有项目最终都退出了。
-
它叫做 Swashbuckle,而不是 Swashbuckler。最后没有R。
标签: rest asp.net-web-api2 swagger tph