首页 > 解决方案 > 如何将 JSON 字符串作为请求参数传递给其他服务

问题描述

我有两个服务正在运行。一项服务将生成 JSON 响应。下面是生成的 Json 响应。

{ "appliedCostMatrix": { "regionCostMatrix": "","costAreaCode": "",    "costBoundaryId": 0,    "isActive": "Y",    "costRegionCode": "",    "regionTypeCode": 3,    "regionTypeDescription": "California",    "solveTypeDescription": "Coaxial"  },  "networkSolveRegion": "CALIFORNIA"} 

现在要保存响应,我必须调用其他服务并且必须将此 Json 作为字符串传递。

http://localhost:8080/putSolvedRoutes?responseJson=(Above Mentioned JSON string)

谁能告诉我实现这一目标的最佳方法。

提前致谢。

标签: javaspring-bootjakarta-ee

解决方案


你试过什么?您的标签暗示这是一个 Spring 问题,因此在 Spring 启动的上下文中,设置您的控制器(接收您使用 json 数据发送的第二个请求)如下:

@RestController
public class YourRestController {
    @RequestMapping(value="/your/endpoint", method=RequestMethod.POST)
    public ResponseEntity<String> someMethod(@RequestBody YourDTO data) {
        // business logic here
    }
}

并使用您正在使用的任何客户端发送请求,在帖子中。

如果客户端也是 Spring,请查看文档以了解解决问题的一种可能方法。一个简单的例子:

@Service
public class YourService {
    private final RestTemplate rt;
    public YourService(RestTemplateBuilder rtb) {
        this.rt = rtb.build();
    }
    public YourDTO someRestCall(String param) {
        return this.rt.postForObject("/your/endpoint", YourDTO.class, param);
    }
}

推荐阅读