2015-03-03 47 views
5

我試圖使用Swagger來記錄我的REST API。在此之後example,我批註REST端點是這樣的:隱式參數與播放框架中的Swagger數據類型模型

case class CreateItemRequest(title: String, body: String) 

@ApiOperation(value = "Create a new item", httpMethod = "POST", response = classOf[Item]) 
@ApiImplicitParams(Array(new ApiImplicitParam(dataType = "CreateItemRequest", paramType = "body", name = "body", required = true, allowMultiple = false, value = "The item object to create"))) 
def create(
      @ApiParam(value = "Hash of the user", required = true) 
      @QueryParam("userhash") userhash: String 
     ) 

而且我期待得到「模型」像this但我只得到了字符串「CreateItemRequest」作爲數據類型。不是案例類CreateItemRequest的屬性。

問候, 丹尼爾

+0

您是否找到解決方案?我面臨同樣的問題:\ – Sudh 2015-03-25 13:49:03

回答

0

嘗試用招搖的註釋來註釋的模型,以及像所示:

https://github.com/swagger-api/swagger-core/blob/master/samples/scala-play2/app/models/Pet.scala

您的註釋ApiModel(NAME = 「CreateItemRequest」)相匹配的註解@ApiImplicitParam(dataType =「CreateItemRequest」)

Cheers,Johannes

+1

我已經嘗試過,但不幸的是不工作:( – 2015-03-04 13:36:00

+1

您是否找到解決方案?我有同樣的問題。 – 2015-03-19 10:58:42

0

在課前試用此註釋@JsonAutoDetect@JsonIgnoreProperties(ignoreUnknown = true),然後爲要顯示的每個屬性添加@JsonPropety

確保在你的路由定義你打電話給你的方法,如:

GET url controllers.foo.YourMethod(param: type) 

更多例子here

希望這會幫助你。

9

您應該在dataType屬性中使用完整的名稱空間。例如: @ApiImplicitParam(dataType = "org.test.CreateItemRequest")

+1

它解決了我的問題。 – chabeee 2015-08-25 11:59:35