我们假设我有一个自定义扩展程序.foo
,这意味着预期的数据类型应该是" JSON-esque"文献。例如,假设我有2个可以支持JSON的格式化程序,标准的JSON.Net和一个自定义的JSON格式化程序,它可以为JSON文档提供怪异的东西。我只想使用第二个JSON格式化程序进行非常具体的api调用,我可以在客户端更改api端点,所以我想做类似的事情:
[Route("~/api/Widgets/{id:int}.{format}")]
[ResponseType(typeof(Widget))]
public async Task<HttpResponseMessage> GetWidget(int id)
{
//stuff goes here
}
因此,导航到
https://myserver.com/api/Widgets/1234.foo
...应该使用我的&#34;特殊&#34;格式化响应。 Widget 1234的格式化程序,但
https://myserver.com/api/Widgets/1234.json
...应该返回一个标准的JSON文档。
当format
标识符是&#34; foo&#34;?时,如何指定仅调用自定义格式化程序?如果我需要支持&#34; foo&#34;和&#34; bar&#34;具有相同格式化程序的格式?
我想指出我很清楚这似乎是一件愚蠢的事情,返回一个本质上格式错误的JSON文档。 (试图削减&#34;替代&#34;或&#34;最佳实践&#34;在通行证上回答......)
答案 0 :(得分:0)
我认为这个问题涵盖了你所需要的:
Return either xml or json from MVC web api based on request
在那里使用JSON / XML格式化程序,但它与自定义格式化程序的工作方式相同。