Spring 将正文 (json) 重定向到另一个端口上的简单休息 POST
Spring redirect simple rest POST with body (json) on another port
我有 2 个 spring 休息申请。
当我向第一个发送数据时,
private Long id;
private String name;
private String surname;
private String productName;
private Double productValue;
首先,我在数据库中创建了一个客户端条目,其中包含以下字段:
private Long id;
private String name;
private String surname;
比
我想重定向 post 到另一个端口,另一个应用程序
使用包含两个字段的正文处理产品数据:
private String productName;
private Double productValue;
private Long clientId;
在数据库中创建产品条目
创建产品后,我想重定向回第一个应用程序并显示保存的客户端。
问题是,我应该如何构建我的控制器?
我必须使用 ModelAndView 吗? - 这只是后端休息,没有任何前端(运行 来自 postman :)
你可能喜欢这样做,首先自动装配 RestTemplate
然后用它来调用另一个 api
-
@RestController
public class ProductResource {
@Autowired
RestTemplate restTemplate;
@Autowired
private ProductRepository repository;
@PostMapping
public ResponseEntity<Product> saveProduct(@RequestBody Product product) {
Product productSavedAtClient = repository.save(product);
Product savedProduct = restTemplate.postForObject("http://some.other.app/product", productSavedAtClient, Product.class);
return ResponseEntity.ok().body(savedProduct);
}
}
我有 2 个 spring 休息申请。 当我向第一个发送数据时,
private Long id;
private String name;
private String surname;
private String productName;
private Double productValue;
首先,我在数据库中创建了一个客户端条目,其中包含以下字段:
private Long id;
private String name;
private String surname;
比 我想重定向 post 到另一个端口,另一个应用程序 使用包含两个字段的正文处理产品数据:
private String productName;
private Double productValue;
private Long clientId;
在数据库中创建产品条目 创建产品后,我想重定向回第一个应用程序并显示保存的客户端。
问题是,我应该如何构建我的控制器? 我必须使用 ModelAndView 吗? - 这只是后端休息,没有任何前端(运行 来自 postman :)
你可能喜欢这样做,首先自动装配 RestTemplate
然后用它来调用另一个 api
-
@RestController
public class ProductResource {
@Autowired
RestTemplate restTemplate;
@Autowired
private ProductRepository repository;
@PostMapping
public ResponseEntity<Product> saveProduct(@RequestBody Product product) {
Product productSavedAtClient = repository.save(product);
Product savedProduct = restTemplate.postForObject("http://some.other.app/product", productSavedAtClient, Product.class);
return ResponseEntity.ok().body(savedProduct);
}
}