2017-01-08 70 views
1

我正在嘗試使用Swagger Play2 Module爲Play應用程序生成api文檔。我們使用很多值類來實現一些額外的類型安全性和代碼可讀性。Swagger ApiModelProperty for value class

其中一個動作的生成JSON進行的情況下,類如下所示:

case class MyResponse(prop1: MyValueType, prop2: MyValueType) 

其中MyValueType是這樣一個值類:

case class MyValueType(value: String) 

正在使用格式化爲JSON只是作爲一個字符串自定義Format[T]

揚鞭UI產生例如JSON這樣的代碼:

{ 
    "prop1": { 
     "value": "string" 
    }, 
    "prop2": { 
     "value": "string" 
    } 
} 

,而我想它產生這樣的:

{ 
    "prop1": "string", 
    "prop2": "string" 
} 

我已經試過這樣的自定義註解,但這並不似乎工作:

case class MyResponse(
    @ApiModelProperty(dataType="string") prop1: MyValueType, 
    @ApiModelProperty(dataType="string") prop2: MyValueType, 
) 

有關如何完成此任何提示?

+0

當您嘗試此操作時,什麼不起作用?你能描述一下這個錯誤嗎? – stewSquared

回答

0

揚鞭是你的包裹內case class MyValueTypecase class MyResponse

它無視你的dataType註釋,仍然解析MyValueType

你嘗試用你的屬性的更完整的詮釋?喜歡的東西:

case class MyResponse(@ApiModelProperty(
          value = "Property 1", 
          dataType="string") prop1: MyValueType, 
         @ApiModelProperty(
          value = "Property 2", 
          dataType="string") prop2: MyValueType) 

順便說一句,在揚鞭的數據類型是不區分大小寫,因此string相當於String

相關問題