我正在使用swagger工具来记录我基于Jersey的REST API(我正在使用的swaggerui是在2014年6月下载的,我不知道这个问题是否在以后的版本中得到了解决,但由于我对其代码进行了大量定制,所以我没有选择下载最新版本,而无需再次投入大量时间进行定制)。
到目前为止,我所有的传输对象都有一级深度属性(没有嵌入的POJO)。但现在,我添加了一些返回更复杂对象(两级深度)的rest路径,我发现当有嵌入式对象时,SwaggerUI并没有扩展JSON模型模式。
以下是《狂妄博士》的重要部分:
...
{
"path": "/user/combo",
"operations": [{
"method": "POST",
"summary": "Inserts a combo (user, address)",
"notes": "Will insert a new user and a address definition in a single step",
"type": "UserAndAddressWithIdSwaggerDto",
"nickname": "insertCombo",
"consumes": ["application/json"],
"parameters": [{
"name": "body",
"description": "New user and address combo",
"required": true,
"type": "UserAndAddressWithIdSwaggerDto",
"paramType": "body",
"allowMultiple": false
}],
"responseMessages": [{
"code": 200,
"message": "OK",
"responseModel": "UserAndAddressWithIdSwaggerDto"
}]
}]
}
...
"models": {
"UserAndAddressWithIdSwaggerDto": {
"id": "UserAndAddressWithIdSwaggerDto",
"description": "",
"required": ["user",
"address"],
"properties": {
"user": {
"$ref": "UserDto",
"description": "User"
},
"address": {
"$ref": "AddressDto",
"description": "Address"
}
}
},
"UserDto": {
"id": "UserDto",
"properties": {
"userId": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},...
},
"AddressDto": {
"id": "AddressDto",
"properties": {
"addressId": {
"type": "integer",
"format": "int64"
},
"street": {
"type": "string"
},...
}
}
...
嵌入的对象是User和Address,它们的模型被正确创建,如json响应所示。
但打开SwaggerUI时,我只能看到:
{
"user": "UserDto",
"address": "AddressDto"
}
但是我应该看到这样的东西:
{
"user": {
"userId": "integer",
"name": "string",...
},
"address": {
"addressId": "integer",
"street": "string",...
}
}
扩展内部属性的代码可能有问题,javascript控制台没有显示任何错误,所以我认为这是一个错误。
我找到了解决方案,有一行代码需要修改才能正常工作:
大摇大摆地。js文件有一个getSampleValue函数,其中有一个条件检查未定义:
SwaggerModelProperty.prototype.getSampleValue = function(modelsToIgnore) {
var result;
if ((this.refModel != null) && (modelsToIgnore[this.refModel.name] === 'undefined'))
...
我将相等性检查更新为(删除引号):
modelsToIgnore[this.refModel.name] === undefined
之后,SwaggerUI可以显示嵌入的模型。
所以我做了一个机器人,它会在一个频道里向新成员发送欢迎信息。我的代码应该工作,因为它没有在我的控制台上发送任何错误,但是我的机器人没有发送欢迎消息。 我尝试了很多东西: > 使嵌入对象成为对象(nope) 做了4个长的不同代码(都不工作) 我在用discord.js@v12 代码:
我正在用Spring MVC和Thymeleaf在视图层开发一个完整的Spring应用程序。过去,我在视图层中使用过JSP和Spring MVC,但我想它们现在是恐龙了 所以我的问题是,使用JSP,通过在模型中添加值,我可以很容易地在视图中显示模型属性。在控制器中添加属性,并在JSP anywhere中显示相同的属性,占位符求值为springex${value}。所以,如果我想在页面中放置标题,我
本文向大家介绍fastjson生成json时Null属性不显示的解决方法,包括了fastjson生成json时Null属性不显示的解决方法的使用技巧和注意事项,需要的朋友参考一下 举个例子 从输出结果可以看出,null对应的key已经被过滤掉;这明显不是我们想要的结果,这时我们就需要用到fastjson的SerializerFeature序列化属性 也就是这个方法:JSONObject.toJSO
问题内容: 我在映射类的嵌入式属性时遇到麻烦。我创建了一些类,这些类与我试图说明的类相似。基本上,我有一个使用继承的@Embeddable类层次结构。顶级类“零件号”只有一个属性,扩展类没有为“零件号”类添加属性,它们仅添加了一些验证/逻辑。 这是我的意思: 部分 零件号 福特PARTNUMBER 高贵的零件编号 当然这是行不通的,因为Hibernate忽略了继承层次结构,并且不喜欢PartNum
我正在编写一个使用嵌套ViewPager的应用程序。每个父ViewPager包含7个子ViewPager。 对于第一个父视图,它可以正常工作,但当它到达下一页时,它在子视图页面的位置显示为空白。 如果使用嵌套视图寻呼机是可行的,这里有什么建议吗?如果是的话,我怎么能避免这个案子呢? 父ViewPager布局与子片段相同: 这是我在父ViewPager片段中实现的子ViewPager适配器:
问题内容: 我在映射类的嵌入式属性时遇到麻烦。我创建了一些类,这些类与我试图说明的类相似。基本上,我有一个使用继承的@Embeddable类层次结构。顶级类“零件号”仅具有一个属性,扩展类未向“零件号”类添加任何属性,它们仅添加了一些验证/逻辑。 这是我的意思: 部分 零件号 福特PARTNUMBER 高贵的零件编号 当然这是行不通的,因为Hibernate忽略了继承层次结构,并且不喜欢PartN