我有一个简单的RESTful方法,它当前返回对象的JSON表示。我的问题更多的是从架构的Angular ,而不是完全技术性的。RESTful服务是否应该设计为同时返回JSON和XML?据我所知,这是一种不好的做法,应该为此定义单独的资源。一个资源应该返回JSON数据和另一个XML。我想的对吗?
xvw2m8pv1#
同一个资源可以根据请求返回XML或JSON,但不应该同时返回两者。您将根据请求知道返回哪一个,因此不需要同时生成两个--只需生成要返回的那个。以下是您可以选择如何决定返回哪个。按顺序求值,在确定要返回的格式后停止:1.如果资源中添加了扩展名(GET /user/1234.json或GET /user/1234.xml),则使用该扩展名作为请求的格式。1.如果设置了Accept标头,则使用该标头的值作为请求的格式。1.如果有一个请求体(如POST的情况),并且Content-Type标头指定JSON或XML,请使用它。1.如果以上都不适用,则使用默认格式(通常使用JSON作为默认格式,除非您的客户通常仍在使用XML)。
GET /user/1234.json
GET /user/1234.xml
5n0oy7gb2#
不需要。您表示资源的方式应该由您的客户端所期望的来定义(有一个http头来说明客户端接受什么表示)。这意味着服务器应该检查当前客户端接受的表示形式,并以这种表示形式发送响应(或者发送一个表示不能以这种媒体类型表示资源的响应)
2vuwiymt3#
**第一步:**在pom的dependencies部分添加下面的dependencies。XML
第二步:进入你的控制器类(其中提到@RestController),并添加以下内容:get方法:
@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中的OUTPUT
在标题部分添加键和值
对于XML输出add -〉Key as Accept and Value as application/xml如下对于JSON输出add -〉Key as Accept and Value as application/json如下
3条答案
按热度按时间xvw2m8pv1#
同一个资源可以根据请求返回XML或JSON,但不应该同时返回两者。您将根据请求知道返回哪一个,因此不需要同时生成两个--只需生成要返回的那个。
以下是您可以选择如何决定返回哪个。按顺序求值,在确定要返回的格式后停止:
1.如果资源中添加了扩展名(
GET /user/1234.json
或GET /user/1234.xml
),则使用该扩展名作为请求的格式。1.如果设置了Accept标头,则使用该标头的值作为请求的格式。
1.如果有一个请求体(如POST的情况),并且Content-Type标头指定JSON或XML,请使用它。
1.如果以上都不适用,则使用默认格式(通常使用JSON作为默认格式,除非您的客户通常仍在使用XML)。
5n0oy7gb2#
不需要。您表示资源的方式应该由您的客户端所期望的来定义(有一个http头来说明客户端接受什么表示)。这意味着服务器应该检查当前客户端接受的表示形式,并以这种表示形式发送响应(或者发送一个表示不能以这种媒体类型表示资源的响应)
2vuwiymt3#
**第一步:**在pom的dependencies部分添加下面的dependencies。XML
第二步:进入你的控制器类(其中提到@RestController),并添加以下内容:
get方法:
@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中的OUTPUT
在标题部分添加键和值
对于XML输出add -〉Key as Accept and Value as application/xml如下
对于JSON输出add -〉Key as Accept and Value as application/json如下