WebAPI 2 - 自定义内容类型和协商

时间:2016-01-05 17:45:40

标签: asp.net-web-api2

非常简单的问题,但我在文档中找不到一个简单的例子,或者它是否只会起作用。

我想版本化我的一个API资源。我想将application/vnd.myEntityV2+json...+xml添加为自定义内容类型,然后检查控制器中的Accept标头并调用相应的代码。简单的想法。

内置的WebAPI内容协商会在最后看到+json|+xml并选择正确的格式化程序吗?

或者我是否需要完全配置两个映射或其他内容?

1 个答案:

答案 0 :(得分:1)

这就是我所做的:

JsonMediaTypeFormatter jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().Single();
jsonFormatter.MediaTypeMappings.Add(
    new RequestHeaderMapping(HttpRequestHeaders.Accept, "+json", StringComparison.OrdinalIgnoreCase, true, new MediaTypeHeaderValue(MimeTypes.ApplicationJson)));

注意HttpRequestHeadersMimeTypes是我自己的类型。

应该捕获包含+json的任何内容类型。