如何使Swagger文档的String资源参数作为完整类类型?
即我有这个资源声明:
@PatchMapping(path="/{id}")
public ApiResponse<MyObject> patch(@PathVariable String id, @RequestBody String myObjText) {
我希望将myObjText
记录为具有MyObject
类型的模型,同时仍然能够在方法主体中获取原始JSON文本(这是因为我以后想调用{{1} },越过杰克逊readerForUpdating()
)。
objectMapper
对于@ApiParam
参数似乎被忽略,并且@RequestBody
注释均不被允许。
我正在使用@ApiModel*
,因为这些是Spring Rest资源。
答案 0 :(得分:1)
尝试将字符串参数替换为@ApiParam(hidden = true)
并添加
您的对象的新参数:
@ApiImplicitParams({
@ApiImplicitParam(name = "My obj text",
value = "myObjText", required = true,
dataType = "com.example.MyObject", paramType = "body")
})
就像在这里实现的一样: How to document implicitly dto usage, when we use entity class as api param?
答案 1 :(得分:0)
在我的情况下,需要进行两项更改:
1)添加了darkness {
position: absolute;
z-index: 1;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .5);
}
(类型名称不符合程序包名称)
@ImplicitParams
2)注册的隐式模型类型(尤其是当响应类型为@ApiImplicitParams({
@ApiImplicitParam(name = "requestBody", required = true,
dataType = "MyObject", paramType = "body")
})
ResponseEntity(Void.class)