如何在Sping Boot 中使用postman或feign客户端将value设置为@RequestAttribute

scyqe7ek  于 2023-10-18  发布在  Postman
关注(0)|答案(2)|浏览(308)

我有这样的方法:

@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值
非常感谢您!

acruukt9

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的文章可能也有帮助。

kpbpu008

kpbpu0082#

你应该在服务器端的拦截器中设置请求属性,如下所示

override fun preHandle(request: HttpServletRequest, response: HttpServletResponse, handler: Any): Boolean {
         request.setAttribute("requestInfo", RequestInfo(115639, 63643, 0, 266239512, applicationKey))
         true
}

相关问题