如何在Swagger / Springfox中正确改善模型描述

问题描述

使用Springfox上的最新版本3.0.0,我有一个模型,该模型的属性基本上是Map枚举的String。这在JSON中呈现得很好,但是在文档方面还有很多不足之处。因此,我根据AlternateTypeRuleAlternateTypeBuilder的示例,使用AlternateTypeRuleConventionPageable制作了SpringDataRestConfiguration.java。我对“方案”部分中的模型感到满意

 ClientDetailsView { 
    grant_type    [string]
    redirect_url  [string]
    resource_id   [string]
 }

但是当我尝试使用打开操作时,出现错误

路径中的解析器错误./import.post.requestBody.content.application/json.schema.properties.clientDetails.additionalProperties.$ref 无法解析参考:

这是我改编的代码

  @Bean
  public AlternateTypeRuleConvention clientDetailViewConvention(TypeResolver resolver) {
    return new AlternateTypeRuleConvention() {
      
      @Override
      public int getorder() {
        return Ordered.HIGHEST_PRECEDENCE;
      }
      
      @Override
      public List<AlternateTypeRule> rules() {
        return List.of(
            AlternateTypeRules.newRule(
                resolver.resolve(ClientDetailsView.class),resolver.resolve(clientDetailsView()))
                );
      }
    };
  }
  
  public Type clientDetailsView() {
    var b = new AlternateTypeBuilder()
        .fullyQualifiedClassName(String.format("%s.alt.%s",ClientDetailsView.class.getPackageName(),ClientDetailsView.class.getSimpleName()));
    for (ClientDetailTypes cdt : ClientDetailTypes.values()) {
      b.property(p -> p.name(cdt.getDbValue())
          .type(String[].class)
          .canRead(true)
          .canWrite(true));
    }
    return b.build();
  }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)