【发布时间】:2018-02-12 22:55:22
【问题描述】:
我目前正在开发一个实验原型,想询问是否有办法在获取请求中接受响应正文。
@RequestMapping(method=RequestMethod.GET, path="/stair/shippingorders", produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<?> getShippingOrder(@RequestBody JsonNode request) throws JsonProcessingException, IOException{
log.info("get body: " + request);
// do stuff
return ResponseEntity.ok(response);
}
测试应该是这样的
@Test
public void shouldAcceptRequestBodyinGetRequest() {
JSONObject body = new JSONObject();
body.appendField("stuff", "{}");
HttpEntity<JSONObject> entity = new HttpEntity<JSONObject>(body);
ResponseEntity<String> result = restTemplate.exchange(GET_URL,HttpMethod.GET, entity, String.class );
assertNotNull(result);
}
【问题讨论】:
-
为什么要在请求映射中使用响应正文?
-
我有几个松散连接(REST)的微服务。他们根据请求的内容将请求及其内容发送到其他微服务(自治)。以及输出。所以一个微服务改变了内容并且取决于(例如状态“付费”)它被发送到一个不同的服务,其中包括一些其他嵌入式资源用于响应......使用POST它工作正常但是我必须包括像资源ID这样的东西作为获取参数。这只是一个原型实现......所以我可以放弃代码系统的控制流
标签: spring spring-mvc spring-boot spring-data