我有一个简单的 RESTful 方法,它当前返回一个对象的 JSON 表示。
我的问题更多是从架构的角度出发,而不是完全技术性的。
RESTful 服务是否应该以同时返回 JSON 和 XML 的方式设计?
据我所知,这是一种不好的做法,应该为此定义单独的资源。一种资源应返回 JSON 数据,另一种应返回 XML。
我想得对吗?
同一资源可能会根据请求返回 XML 或 JSON,但不应同时返回两者。您将知道根据请求返回哪一个,因此无需生成两者——只需生成您要返回的那个即可。
这里是您可以选择如何决定返回哪个。按顺序评估,当你确定要返回的格式时停止:
GET /user/1234.json
或 GET /user/1234.xml
),请将其用作请求的格式。没有。您表示资源的方式应该由您的客户所期望的来定义(有一个 http-header 说明客户接受什么表示)。 这意味着您的服务器应该检查当前客户端接受的表示形式是什么,并以这种表示形式发送响应(或者发送一个表示他不能以该媒体类型表示资源的响应)
Step 1: 在pom.xml中的dependencies部分添加下面的依赖
第 2 步:转到您的控制器类(提到@RestController)并在下面添加:
获取方法:
@GetMapping(path = "/getNews",produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
公共获取方法
{
//你的逻辑
}
与其他方法一样 POST,PUT...
对于post方法:
@PostMapping(produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE} )
公共邮寄方法
{
//你的逻辑
}
第 3 步: POSTMAN 中的输出
在标题部分添加键和值
对于 XML 输出 添加 -> Key 作为 Accept,Value 作为 application/xml,如下所示
对于 JSON 输出 添加 -> Key 作为 Accept,Value 作为 application/json,如下所示