小编Vha*_*aos的帖子

错误响应中的REST-API不同内容类型

几个星期以来,我正在使用spring-mvc进行休息api.REST-API工作正常,在涉及到特定错误对象的错误处理时,我几乎完成了直到最后一个问题.

REST-API使用JSON作为格式来序列化Java对象.在服务执行期间发生错误时,会创建特定的错误对象并将其发送回客户端.

当我的休息服务标记为"produce = application/json"时,一切正常.但是也有一些服务只需要使用"produce = text/plain"返回简单文本.当其中一个服务发生错误时,Spring-MVC将抛出HttpMediaTypeNotAcceptableException.似乎是正确的,因为客户端要求内容类型为"text/plain",而服务器响应为"application/json".

你能告诉我这个问题的正确解决方案是什么吗?

  1. 仅使用JSON作为响应内容类型并将简单文本包装在特殊的类对象中.=>对我来说似乎不是真的REST,因为REST应该支持多种内容类型.

  2. 每个服务"text"的服务都将标记为"produce = application/json; text/plain",而Client也需要在"accept-header"中发送两者.=>这样做时,API似乎支持相同资源的两种内容类型.但那不对.只有在出现错误的情况下,API才会返回JSON,否则它将始终为"text".

听起来像一个非常特殊的REST问题,并且无法找到关于这个主题的相关问题.

java api rest json spring-mvc

6
推荐指数
2
解决办法
2616
查看次数

标签 统计

api ×1

java ×1

json ×1

rest ×1

spring-mvc ×1