从Rest Endpoint返回不同的模型

时间:2014-10-10 12:35:26

标签: rest asp.net-web-api2

背景

我正在为一些产品/批次/包等开发我的第一个webapi2休息界面。我读了这个excellent page关于如何做好休息api并且我坚持一些概念和我的谷歌搜索技能有我失败了。

我想给开发人员选择嵌入或侧载子资源,以防止对子/子资源数据的重复api命中(即返回批量的所有包)。我还希望他们能够指定他们想要返回的字段。

我习惯于创建Method及其自己或共享ViewModel的普通MVC / WebApi样式,并完整地发送它。如果我需要发送更少的数据,我会创建一个更纤薄的ViewModel。

问题

我将什么返回类型放在其余端点上,它是否只是我根据他们请求的字段手动构建的JObject(并且开发人员必须依赖文档来确定它可以返回什么)?

或者我是否创建了一个胖视图模型并以某种方式将字段标记为可选字段,并且如果值为null等,JSON / XML转换器可以省略这些字段(但是我如何侧载子资源。 ..)?

谢谢,皮特

1 个答案:

答案 0 :(得分:0)

我决定使用OData v4,以便我可以让客户端应用程序决定使用我正在公开的数据的内容和方式。它不支持sideloading(我到目前为止已经发现),但它允许我轻松地嵌入,过滤和减少任何模型。