Swagger和Play框架 - 使用粘合剂

时间:2015-03-31 07:07:59

标签: scala playframework routes swagger

我的团队遇到了这个问题。

使用Play Framework,我已经定义了这条路线:

GET  /profiles/:profile/emails  @controllers.Emails.indexByProfileId(profile: Long, page: Int ?= 1, pagesize: Int ?= 25)

我使用招摇来记录路线:

def indexByProfileId(
    @ApiParam(value = "Profile id", required = true) @PathParam("profileId")
    profileId: Long,
    @ApiParam(value = "Page number", required = false) @PathParam("page")
    page: Int,
    @ApiParam(value = "Page size", required = false) @PathParam("pageSize")
    pageSize: Int) = ...

一切运作良好。但是,当我尝试为页面 pageSize 定义活页夹时,Swagger不再工作。如果我禁用Swagger,粘合剂可以工作。这是抛出的异常:

Problem loading class:  controllers.Emails.indexByProfileId(profile:com.pure360.db.Id, page:dto.PaginationDTO ?= dto. java
.lang.ClassNotFoundException: class controllers.Emails.indexByProfileId(profile:com.pure360.db.Id, page:dto.PaginationDTO ?= dto not found

我认为Swagger很困惑,因为路由定义了总共3个参数,但由于绑定器,端点现在只定义了2个。有没有办法让Swagger了解这个?

由于

1 个答案:

答案 0 :(得分:1)

请在swagger-core打开一张票。正在重写play框架支持,我们可以确保这个用例得到很好的记录。