Java Swagger - 在“allowableValues”中传递数据库中的值?

时间:2016-08-09 06:47:46

标签: java spring swagger-2.0

我正在使用带有Java spring的Swagger版本2。我声明了一个属性,它工作正常,它会生成一个我分配的值的下拉列表。

@ApiParam(value = "Pass any one Shuttle provider ID from the list", allowableValues = "1,2,3,4,10")
    private Long hotelId;

但现在我需要一种方法来填充此列表,该列表从allowableValues传递到我的数据库,因为它可能是随机列表以及大量数据。如何在此allowableValues

中从数据库动态分配值列表

1 个答案:

答案 0 :(得分:1)

  1. 您需要在SwaggerConfiguration类中创建构造函数。
  2. @Autowire服务并从数据库中提取您需要的数据
  3. 将此内容分配给final变量
  4. 将此final变量分配给注释中的allowableValues
  5. 享受不高效的api

    private final String allowableValues;
    
    public SwaggerConfiguration() {
      List<YourEntitiy> list = someService.findAll();
      //code to get every value you need and add create comma separated String
      StringJoiner stringJoiner = new StringJoiner(",");
      stringJoiner.add(list.get(0).getValue());
    
      this.allowableValues = stringJoiner.toString();
    }
    
    @ApiParam(allowableValues = allowableValues)
    
  6. 但我认为从数据库获取所有ID只是为了创建允许的值是个坏主意。只需在api方法中验证该id是否存在和/或创建新api以从数据库获取ID,使用Spring Data项目中的分页,如PageImpl<> javadocs