zoukankan      html  css  js  c++  java
  • swagger中@ApiModelProperty中example属性对List的支持

    swagger中@ApiModelProperty注解example使用问题

    example属性默认是String的, 对应List的支持不好

    @ApiModelProperty(position = 2, example = "PRD1, PRD2, PRD3")
    // This generates -> "productIdentifiers": "PRD1, PRD2, PRD3" // Its not json array
    
    @ApiModelProperty(position = 2, example = "["PRD1", "PRD2", "PRD3"]")
    // This generates -> "productIdentifiers": "["PRD1", "PRD2", "PRD3"]" // Its too not json array
    
    @ApiModelProperty(position = 2, dataType="List", example = "PRD1, PRD2, PRD3")
    private List<String> productIdentifiers;
    //This generates -> `"productIdentifiers": "PRD1, PRD2, PRD3"`
    
    @ApiModelProperty(position = 2, dataType="java.util.List<String>", example = "PRD1, PRD2, PRD3")
    // This generates -> "productIdentifiers": "PRD1, PRD2, PRD3"
    
    @ApiModelProperty(position = 2, dataType="String[]", example = "PRD1, PRD2, PRD3")
    // This generates -> "productIdentifiers": "PRD1, PRD2, PRD3"
    

    依赖版本

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.7.0</version>
    </dependency>
    

    暂时还没有适配

    TLDR: One of the contributers on Swagger-API has worked on this functionality to add this in version 3.0.0 but it's not sure yet when this will be released. For now it stands on the feature/3.0.0-rc2 branch at the Swagger-API GitHub

    I've been working with Swagger for almost two months now and as our project progressed issues like this showed up. Now I did some research and read on the GitHub pages for the Swagger-API that this feature simply doesn't work (yet).

    As described here and [here would be an other link but my reputation is not high enough to post more than 2 links] this feature has been requested several times since August 2015 with not much luck.

    Now on this issue on the Swagger-API github, one of the contributors commented:

    This takes a major refactoring of the models, which is on the way. 3 March 2017

    which lead to a later comment:

    Will be supported in 3.0.0 support, please see the feature/3.0.0-rc2 branch for details. 27 June 2017

    And on 9 August 2017 someone asked when the release of version 3.0.0 would be with no further response.

    So in conclusion, support for examples for arrays/Lists has been worked on and should be available in version 3.0.0 but no more news on when that would be released.

    取巧的解决方法

    # 此方法只能显示一个
    public class MajorNutrientElements {
        @ApiModelProperty(name = "majorName", value = "食材名称", example = "西红柿", required = true)
        private String majorName;
        @ApiModelProperty(name = "nutrientElements", value = "食材对应的营养元素", allowableValues = "维生素E", required = true)
        private List<String> nutrientElements;
    }
    
    swagger中显示
    {
      "majorName": "西红柿",
      "nutrientElements": [
        "维生素E"
      ]
    }
    
    如果不写example和allowableValues, 如下展示
     {
      "majorName": "西红柿",
      "nutrientElements": [
        "string"
      ]
    } 
    

    未验证,据说可以解决的

        @ApiModelProperty(value = "Address", name = "addLines", dataType = "List",
        example = "[AddLine1,AddLine2,AddLine3,AddLine4]")
        渲染出来:
        "addLines": [
          "AddLine1",
          "AddLine2",
          "AddLine3",
          "AddLine4"
        ]
        
        
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
    
        <!-- Swagger 2 UI -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
    
        <!-- Swagger 2 JSR-303 based documentation -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-bean-validators</artifactId>
            <version>2.9.2</version>
        </dependency>
    

    站在巨人肩膀上摘苹果

    https://www.it1352.com/972727.html

    https://github.com/swagger-api/swagger-core/issues/1855

    https://stackoverflow.com/questions/40989038/swagger-apimodelproperty-example-value-for-liststring-property/50132642#

  • 相关阅读:
    黑马程序员——用函数实现模块化程序设计(一)
    RN个人笔记SectionListView
    小程序实现APP底部(TabBar)页面控制效果
    #import "项目名-Swift.h"的介绍
    OC & Swift中UITextFiled、UITextView限制输入字数
    Xcode8使用CoreData如何生成OC和Swift版的SubClass
    Swift之“闭包”的应用
    Swift中两种桥接头文件创建方式
    swift头部无线轮播视图
    swift中collectionView的简单用法
  • 原文地址:https://www.cnblogs.com/eternityz/p/13595703.html
Copyright © 2011-2022 走看看