标签: swagger-play2

Play 2和Swagger的可选参数

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

GET /documents controllers.DocumentController.getDocuments(q: Option[String])
Run Code Online (Sandbox Code Playgroud)

我希望qparam是可选的.这个Option[String]参数有一个匹配的带注释的控制器方法.在启动时,我进入UNKOWN TYPE日志并由api-docs生成的json中断swagger-ui:

UNKNOWN TYPE: scala.Option
[info] play - Application started (Dev)
Run Code Online (Sandbox Code Playgroud)

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

scala swagger playframework-2.2 swagger-play2

13
推荐指数
1
解决办法
3438
查看次数

如何控制Swagger为类型生成模型/模式的方式

我能够通过Play设置Swagger并尝试Swagger-ui ......我必须说它真的很棒.

使用ApiOperation,ApiImplicitPara等记录我的控制器的操作很容易,并且按预期工作.

然而,由于我对Swagger的了解有限,我在为类型的隐式参数定义模式时遇到了问题body.我想要映射到隐式参数的类如下所示:

@ApiModel(value "User", description = "Represents an user")
class User private(private var json: JsValue) {

  private def setValue(key: JsPath, value: JsValue) = {
    value match {
      case JsNull => json.transform(key.json.prune).map(t => json = t)
      case _ => json.transform((__.json.update(key.json.put(value)))).map(t => json = t)
    }
  }

  def asJson = json

  @ApiModelProperty(value = "User's id", dataType = "String", required = false)
  def id_= (v: Option[String]) = setValue((__ \ 'id), Json.toJson(v)) …
Run Code Online (Sandbox Code Playgroud)

scala swagger swagger-ui swagger-play2

6
推荐指数
1
解决办法
2289
查看次数

使用Play/Java-framework-2.5配置Swagger

我正在尝试使用我的Play-2.5项目配置Swagger.

我按照本教程进行了操作,但仅适用于较旧版本的Play而不使用Play-2.5.随着项目迁移到Play-2.5,我们不得不删除swagger配置.

首先,问题似乎是Play-2.5中的静态控制器与非静态控制器,但我最终证明自己是错的.我正面临这个错误

      type ApiHelpController is not a member of package controllers 
      GET         /api-docs                controllers.ApiHelpController.getResources
Run Code Online (Sandbox Code Playgroud)

如果任何人知道Play-2.5 for Java的 Swagger配置链接,请指导.

PS:有Scala的教程不适用于java.

java playframework swagger-ui swagger-play2 playframework-2.5

6
推荐指数
1
解决办法
3108
查看次数

带有Play框架的ImplicitParam中的Swagger数据类型模型

我正在尝试使用Swagger来记录我的REST API.在这个例子之后,我像这样注释REST端点:

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
          ) 
Run Code Online (Sandbox Code Playgroud)

我期待得到"模特"之类的 这个但我只获得字符串"CreateItemRequest"作为数据类型.不是案例类CreateItemRequest的属性.

问候,丹尼尔

scala playframework swagger swagger-ui swagger-play2

5
推荐指数
2
解决办法
4110
查看次数