2017-01-08 12 views
1

Swagger Play2 Moduleを使用して、Playアプリケーション用のapiドキュメントを生成しようとしています。追加の型安全性とコードの可読性のために、多くのバリュークラスを使用しています。アクションの価値クラスのSwipper ApiModelProperty

一つは、以下のような場合クラスのJSONを生成する:MyValueType

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

ような値のクラス:

case class MyValueType(value: String) 

使用ちょうど文字列としてJSONにフォーマットされていますカスタムFormat[T]。私はそれがこれを生成したいと思いながら

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

闊歩UIは、このような例JSONコードを生成し、私はこのようなカスタムアノテーションを試してみました

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

が、それはしていません

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

どのようにこれを達成するためのヒント?

+0

これを試すとどうなりますか?エラーを説明できますか? – stewSquared

答えて

0

SWAGGERがあなたのcase class MyResponse以内にあなたのcase class MyValueTypeをラップしているとのdataType = "文字列" を試してみてください。

それはあなたのdataType注釈を無視している、そしてまだあなたがあなたの特性のより完全な注釈をしようとしました

MyValueTypeを解析しますか?ような何か:ところで

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

は、闊歩のデータ型は、そのためstringStringに相当し、大文字と小文字を区別しません。