我有这样的方法:
@PostMapping(path = "/workflow-services/{service_id}/tickets",
consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<TicketIdResponse> createTicket(@PathVariable("service_id") String serviceId,
@RequestBody @Validated CreateTicketRequest request, @RequestAttribute Payload payload) {
log.info("Start create ticket [{}]", request);
TicketIdResponse response = ticketService.createTicket(serviceId, request, payload);
log.info("Create ticket response: {}", response);
return ResponseFactory.success(response);
}
那么如何在postman或feign客户端中设置@RequestAttribute Payload值
非常感谢您!
2条答案
按热度按时间acruukt91#
@RequestAttribute注解通常用于检索在同一HTTP请求期间在服务器端填充的数据。例如,如果您使用了拦截器、过滤器或方面来填充“payload”属性,那么您应该能够使用@RequestAttribute注解来访问它。
如果你想从外部客户端传递一些东西(例如通过 Postman ,curl或任何其他简单的客户端)- @RequestAttribute不是前进的方向。
良好的参考资料; https://www.baeldung.com/whats-new-in-spring-4-3https://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/request-attribute.html
这篇SO的文章可能也有帮助。
kpbpu0082#
你应该在服务器端的拦截器中设置请求属性,如下所示