如何自动生成没有POJO的响应字段

时间:2018-01-01 15:58:38

标签: spring-auto-restdocs

我们有一个服务只是在GET请求上返回json文档。由于我们没有响应"模型"的POJO,我们似乎无法使用自动响应字段生成"善良"。

我们的一个选择是创建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);
   }

1 个答案:

答案 0 :(得分:0)

目前,我认为没有办法利用汽车发电而不需要额外的努力。 Spring Auto REST Docs通过使用Jackson访问者检查POJO(没有运行时信息的静态内省)来工作,目前无法从字符串派生JSON字段(在运行时是动态的)。因此,我只看到两个选项:

  1. 您已经描述过的方法:创建相应的POJO并使用它。
  2. 使用Spring REST Docs进行相应的测试,并手动记录测试中的每个字段。如果您不想改变生产代码,可能是更好的选择。