我们正在构建其GET方法返回DTO的Web API。我们希望构建它,以便在某些情况下,为了控制发送到客户端的数据量,这些DTO被剥夺了不必要的属性。例如,当我们返回我们的一封电子邮件DTO时,我们有时会希望客户指定它只需要一个主题,日期和ID,而不是电子邮件的正文。当然,在其他情况下,电子邮件的正文是必需的。可以使用内容协商来控制ASP.NET WebApi中的返回类型吗?
什么是在MVC WebApi这样做的最好方法是什么?我研究过MediaTypeFormatters,但他们似乎专注于数据的格式(JSONP,XML)而不是内容。
有很多方法可以做到这一点,最好是通过消息处理程序,但很难说出任何内容,因为您尚未指定如何确定将响应给定请求返回哪种对象/属性集。 通过自定义标题?通过一些IP白名单?通过querystring? – 2012-07-09 10:11:01
对不起,这个模糊的问题。我想使用自定义标题来指示要返回的对象/属性集。我会更多地关注消息处理程序。谢谢。 – neonbytes 2012-07-09 20:57:23
Facebook图形API使用querystring参数_fields_ https://developers.facebook.com/docs/reference/api/selecting-results/,虽然这不是很RESTy – 2013-04-23 15:19:46