0

我们有一个服务,它只是在 GET 请求中返回 json 文档。由于我们没有响应“模型”的 POJO,看来我们将无法使用自动响应字段生成“goodness”。

我们的一个选择是创建 Pojos(相当大,大约 50 个属性)和一个使用 pojos 的相应控制器。这很尴尬,因为我们现在必须维护模型和相应的控制器,以便我们可以自动生成模型。

任何关于我们如何仍然利用响应字段的自动生成的想法将不胜感激。

这是我所指的控制器:

@RestController
@RequestMapping("/api")
public class ProductController {

   @Autowired
   ProductService productService;

   @RequestMapping(value = { "/products/{ids}" }, method = { RequestMethod.GET },
         produces = "application/json", headers={"accept=application/json"})
   @Timed
   @ExceptionMetered
   @LogExecutionTime
   public String getProductDetails(@PathVariable("id") String id)  {
      return productService.getProductDetails(id);
   }
4

1 回答 1

0

目前,我认为如果不付出额外的努力,就无法利用自动生成。Spring Auto REST Docs 通过使用 Jackson 访问者检查 POJO(没有运行时信息的静态自省)来工作,目前无法从字符串派生 JSON 字段(在运行时将是动态的)。因此,我只看到两个选项:

  1. 您已经描述的方法:创建相应的 POJO 并使用它。
  2. 使用 Spring REST Docs 进行相应的测试并手动记录测试中的每个字段。如果您不想更改生产代码,这里可能是更好的选择。
于 2018-01-02T17:52:29.160 回答