使用 iheartradio/play-swagger 为 swagger.yml play 应用程序设置嵌套变量
Set nested variables for swagger.yml play app using iheartradio/play-swagger
我正在使用 iheartradio/play-swagger 库生成 swagger.json 到服务器 UI。我无法在 swagger.yml 内设置嵌套变量(信息下的标题)。虽然我可以设置,例如主机变量。
swagger.yml
swagger: "2.0"
info:
description: "API"
version: "1.0.0"
title: "Brand API"
host: "api.radio"
tags:
- name: "brand"
这是 swagger 控制器代码
val authUrl = "brand"
lazy val swagger = Action { request =>
generator.generate().map(_ + ("title" -> JsString(authUrl))).fold(
e => InternalServerError("Couldn't generate swagger."),
s => Ok(s))
}
在 JSON 的嵌套片段中添加 属性 的一种方法是使用 JsObject#deepMerge
.
在你的例子中,替换
generator.generate().map(_ + ("title" -> JsString(authUrl)))
与:
val toMerge = Json.parse(s"""{ "info": { "title": "$authUrl" } }""") // or build it manually
generator.generate().map(_.deepMerge(toMerge))
我正在使用 iheartradio/play-swagger 库生成 swagger.json 到服务器 UI。我无法在 swagger.yml 内设置嵌套变量(信息下的标题)。虽然我可以设置,例如主机变量。
swagger.yml
swagger: "2.0"
info:
description: "API"
version: "1.0.0"
title: "Brand API"
host: "api.radio"
tags:
- name: "brand"
这是 swagger 控制器代码
val authUrl = "brand"
lazy val swagger = Action { request =>
generator.generate().map(_ + ("title" -> JsString(authUrl))).fold(
e => InternalServerError("Couldn't generate swagger."),
s => Ok(s))
}
在 JSON 的嵌套片段中添加 属性 的一种方法是使用 JsObject#deepMerge
.
在你的例子中,替换
generator.generate().map(_ + ("title" -> JsString(authUrl)))
与:
val toMerge = Json.parse(s"""{ "info": { "title": "$authUrl" } }""") // or build it manually
generator.generate().map(_.deepMerge(toMerge))