gpt4 book ai didi

scala - Play 2 和 Swagger 的可选参数

转载 作者:行者123 更新时间:2023-12-03 23:58:13 25 4
gpt4 key购买 nike

我正在尝试使用 Swagger 来记录 Play 2 REST API,但是 swagger-play2似乎不理解用 Scala 定义的可选参数 Option type - 在 Play 2 中使参数可选的正常方法:

GET /documents controllers.DocumentController.getDocuments(q: Option[String])

我想要 q参数是可选的。有一个与此匹配的带注释的 Controller 方法 Option[String]参数。启动时我收到 UNKOWN TYPE在日志中,api-docs 生成的 json 中断 swagger-ui :
UNKNOWN TYPE: scala.Option
[info] play - Application started (Dev)

是否有另一种方法可以在 Play 2 中指定可选参数并让 Swagger 理解它?

最佳答案

到目前为止我发现的一种解决方法是从参数列表中删除参数,使用 Swagger 的 @ApiImplicitParams注释并从 Controller 方法中的请求对象中获取参数。 Swagger 然后会认为参数是可选的。

GET /documents controllers.DocumentController.getDocuments()

然后在 Controller 中:
@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 文档。

关于scala - Play 2 和 Swagger 的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com