带有 JAXB 生成类的 swagger 2

问题描述

我有 JAXB 生成的类

@XmlAccessorType(XmlAccesstype.FIELD)
@XmlType(name = "MyResponse",propOrder = {
    "member1","member2","member3"
})
public class MyResponse implements Serializable {
<... other class members; setters/ getters ...>
}

@XmlAccessorType(XmlAccesstype.FIELD)
@XmlType(name = "myRequest",propOrder = {
    "test1","test2","test3"
})
public class MyRequest implements Serializable {
    <... other class members; setters/ getters ...>
}

但是,swagger 2(版本 3.0.0)生成的示例值如下

<?xml version="1.0" encoding="UTF-8"?>
<JAXBElement«MyRequest»>
    <name>
        <localPart>jhgkhgk</localPart>
        <namespaceURI>gfjgfj</namespaceURI>
        <prefix>gfjhgfj</prefix>
    </name>
    <nil>true</nil>
    <MyRequest>
        <test1>string</test1>
        <test2>string</test2>
        <test3>string</test3>
    </MyRequest>
</JAXBElement«MyRequest»> 

如何强制 swagger 生成示例值

<MyRequest>
    <test1>string</test1>
    <test2>string</test2>
    <test3>string</test3>
</MyRequest>

我的控制器类

public @ResponseBody JAXBElement<MyRequest> test(
        @RequestBody JAXBElement<MyResponse> message) {

}

更新一号

只要找出那个推

@ApiImplicitParams({
        @ApiImplicitParam(
                name = "message",dataTypeClass = MyResponse.class,examples = @io.swagger.annotations.Example(
                        value = {
                                @ExampleProperty(value = "{'property': 'test'}",mediaType = "application/xml")
                        }))
})

在我的控制器之上给出了所需结果的 1/2,现在需要计算 如何添加命名空间

解决方法

找到了解决方案 - 放弃 SpringFox 并使用 springdoc-openapi-ui 代替(如果您是 一个 Java 开发人员)这很容易,即

@io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(examples = {
                   @ExampleObject(
                           name = "Person sample",summary = "person example",value ="my custom example to be executed")}))