scala – 可选参数与Play 2和Swagger
发布时间:2020-12-16 09:15:56 所属栏目:安全 来源:网络整理
导读:我试图使用Swagger来记录一个Play 2 REST API,但是swagger-play2似乎没有理解 Scala选项类型定义的可选参数 – 在Play 2中进行param可选的常规方法: GET /documents controllers.DocumentController.getDocuments(q: Option[String]) 我想要q参数是可选的.
我试图使用Swagger来记录一个Play 2 REST API,但是swagger-play2似乎没有理解
Scala选项类型定义的可选参数 – 在Play 2中进行param可选的常规方法:
GET /documents controllers.DocumentController.getDocuments(q: Option[String]) 我想要q参数是可选的.有一个与该选项[String]参数匹配的注释控制器方法.在启动时,我在日志中得到UNKOWN TYPE,api-docs生成的json破坏了swagger-ui: UNKNOWN TYPE: scala.Option [info] play - Application started (Dev) 有没有另外一种方式来指定Play 2中的可选参数,并且Swagger明白了吗? 解决方法
目前我发现的一个解决方法是从params列表中删除param,使用Swagger的@ApiImplicitParams注释,并从控制器方法中的请求对象中获取参数.然后Swagger会认为param是可选的.
GET /documents controllers.DocumentController.getDocuments() 然后在控制器中: @ApiOperation(...) @ApiImplicitParams(Array( new ApiImplicitParam(name = "q",value = "Query",required = false,dataType = "string",paramType = "query"),)) def getDocuments = Action { implicit request => // use param via request object } 这肯定不如使用Scala的Option类型,但它产生正确的Swagger文档. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |