gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:58:11 25 4
gpt4 key购买 nike

我能够设置 Swagger 播放 并尝试 Swagger-ui...我必须说它真的很棒。

使用 ApiOperation 记录我的 Controller 的操作, 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))
def id = json as (__ \ 'id).readNullable[String]
@ApiModelProperty(value = "User's email address", dataType = "String", required = true)
def email = json as (__ \ 'email).read[String]
def email_= (v: String) = setValue((__ \ 'email), Json.toJson(v))
@ApiModelProperty(value = "User's firstName", dataType = "String", required = true)
def firstName = json as (__ \ 'firstName).read[String]
def firatName_= (v: String) = setValue((__ \ 'firstName), Json.toJson(v))
...
}

object User {

def apply(
id: Option[String],
email: String,
firstName: String,
): JsResult[User] = apply(Json.obj(
"id" -> id,
"email" -> email,
"firstName" -> firstName,
...
))
}

我的模型类的内部表示是 JSON...然后我只提供读取/修改内部 JSON 的 getter 和 setter——这个解决方案让我可以非常快速地处理 JSON,我可以按原样将对象传递给 MongoDB。

问题是Swagger为上面的类生成的模型是这样的:
User {
json(JsValue),
id(String): User's id,
email(String): User's email,
firstName(String): User's first name,
...
}

如何防止 Swagger 放置 json在模型中?

最佳答案

尝试这个:

 @ApiModelProperty(required = false, hidden = true) 
def asJson = json

关于scala - 如何控制 Swagger 为类型生成模型/模式的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21982221/

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