将支持的标头类型添加到 JsonOutputFormatter

西蒙·c

我的公司在内部 apis 等中使用健康检查响应的标准格式。我们要么返回内容类型为application/status+jsonon success的状态,要么application/problem+json如果我们有问题(本提议规范的一部分)。

但是,如果我将内容类型设置为其中任何一个,我的响应就会变成空406响应。

那么,我如何告诉 JsonOutputFormatter 它可以将这些 Json 标头类型添加到它的SupportedMediaTypes集合中?

我希望我可以做这样的事情:

services.AddMvc().AddJsonOptions(jsonOptions => {
    jsonOptions.SerializerSettings.SupportedMediaTypes.Add("application/problem+json");
});

但当然,我找不到办法做到这一点。

西蒙·c

好的,所以这是一种方法。我找到了该OutputFormatters集合并能够拉出 JsonOutputFormatter。从那里您可以添加支持的媒体类型:

        services.AddMvc(mvcOptions => {
            //TODO: make extension method 
            var jFormatter = mvcOptions.OutputFormatters.FirstOrDefault(f => f.GetType() == typeof(JsonOutputFormatter)) as JsonOutputFormatter;
            jFormatter?.SupportedMediaTypes.Add("application/problem+json");
            jFormatter?.SupportedMediaTypes.Add("application/status+json");
        });

或者,作为扩展方法:

    public static IMvcBuilder AddStatusJsonSupport(this IMvcBuilder builder) {
        builder.AddMvcOptions(options => {
            var jFormatter = options.OutputFormatters.FirstOrDefault(f => f.GetType() == typeof(JsonOutputFormatter)) as JsonOutputFormatter;
            jFormatter?.SupportedMediaTypes.Add("application/problem+json");
            jFormatter?.SupportedMediaTypes.Add("application/status+json");
        });
        return builder;
    }

像这样调用:

services.AddMvc().AddStatusJsonSupport();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将标头添加到EndpointAddress

来自分类Dev

将内容类型标头添加到Java HTTP echo服务器

来自分类Dev

提供ArrayPool对象给JsonOutputFormatter构造函数

来自分类Dev

ASP.NET Core 3.0中的JsonOutputFormatter

来自分类Dev

将标头添加到307重定向

来自分类Dev

将标头添加到SQL(Sybase)输出

来自分类Dev

将CSP标头添加到Google Cloud Storage

来自分类Dev

如何将HTTP标头添加到Jenkins

来自分类Dev

将Qt专用标头添加到CMake项目

来自分类Dev

将图像添加到UICollection标头Swift

来自分类Dev

如何将多个标头添加到HttpServletResponse

来自分类Dev

如何将图像添加到DataGridTemplateColumn标头

来自分类Dev

将标头添加到307重定向

来自分类Dev

将标头添加到SockJS连接?

来自分类Dev

将标头添加到 RDD[string] spark scala

来自分类Dev

将命名空间添加到 XML 中的标头

来自分类Dev

如何创建/添加将默认标头添加到每个请求的中间件

来自分类Dev

xlst将标头节点中的元素添加到其他节点(不是标头的子级)

来自分类Dev

将X-CSRF-Token标头全局添加到XMLHttpRequest()的所有实例;

来自分类Dev

将X-Robot-Tag添加到Sitecore 8中的响应标头

来自分类常见问题

如何将标头添加到OkHttp请求拦截器?

来自分类Dev

使用HAproxy将标头添加到特定URL的响应中

来自分类Dev

在Swift 2中以编程方式将UISearchController添加到UITableView标头

来自分类常见问题

如何将标头添加到现有变量

来自分类Dev

如何将请求标头添加到基于Tyrus注释的客户端

来自分类Dev

使用queue.js将HTTP标头添加到d3.json

来自分类Dev

如何将标头添加到动态构造的表中?

来自分类Dev

我如何将Listview标头添加到我的应用程序

来自分类Dev

狂饮HTTP-将Authorization标头直接添加到请求中

Related 相关文章

  1. 1

    将标头添加到EndpointAddress

  2. 2

    将内容类型标头添加到Java HTTP echo服务器

  3. 3

    提供ArrayPool对象给JsonOutputFormatter构造函数

  4. 4

    ASP.NET Core 3.0中的JsonOutputFormatter

  5. 5

    将标头添加到307重定向

  6. 6

    将标头添加到SQL(Sybase)输出

  7. 7

    将CSP标头添加到Google Cloud Storage

  8. 8

    如何将HTTP标头添加到Jenkins

  9. 9

    将Qt专用标头添加到CMake项目

  10. 10

    将图像添加到UICollection标头Swift

  11. 11

    如何将多个标头添加到HttpServletResponse

  12. 12

    如何将图像添加到DataGridTemplateColumn标头

  13. 13

    将标头添加到307重定向

  14. 14

    将标头添加到SockJS连接?

  15. 15

    将标头添加到 RDD[string] spark scala

  16. 16

    将命名空间添加到 XML 中的标头

  17. 17

    如何创建/添加将默认标头添加到每个请求的中间件

  18. 18

    xlst将标头节点中的元素添加到其他节点(不是标头的子级)

  19. 19

    将X-CSRF-Token标头全局添加到XMLHttpRequest()的所有实例;

  20. 20

    将X-Robot-Tag添加到Sitecore 8中的响应标头

  21. 21

    如何将标头添加到OkHttp请求拦截器?

  22. 22

    使用HAproxy将标头添加到特定URL的响应中

  23. 23

    在Swift 2中以编程方式将UISearchController添加到UITableView标头

  24. 24

    如何将标头添加到现有变量

  25. 25

    如何将请求标头添加到基于Tyrus注释的客户端

  26. 26

    使用queue.js将HTTP标头添加到d3.json

  27. 27

    如何将标头添加到动态构造的表中?

  28. 28

    我如何将Listview标头添加到我的应用程序

  29. 29

    狂饮HTTP-将Authorization标头直接添加到请求中

热门标签

归档