微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring-boot 2和swagger 2springfox不显示模型

如何解决Spring-boot 2和swagger 2springfox不显示模型

我已经创建了我的补丁端点(RFC 6902中指定的Json路径)。 在springfox生成的UI上,显示了我的端点,但是没有显示模型示例(仅补丁)。

要在我的Spring-boot 2项目中使用Json补丁,我已经使用了对pom.xml的依赖。

<dependencies>
    <dependency>
        <groupId>com.github.java-json-tools</groupId>
        <artifactId>json-patch</artifactId>
        <version>1.12</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.11.1</version>
    </dependency>           
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <scope>compile</scope>
    </dependency>
</dependencies>

在我的端点,我的代码是:

@RestController
@RequestMapping(value = "/operation",produces = "application/json")
public class IntentController {
    @RequestMapping(value = "/{id}",method = RequestMethod.PATCH,consumes = "application/json-patch+json")
    public void updateValue(@PathVariable Long id,@RequestBody JsonPatch patch){ {
        // ... do magic
    }

    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    public MyDto getValue(@PathVariable Long id){ {
           MyDto dto = service.findById(id);                
           return dto;
    }

    @RequestMapping(method = RequestMethod.POST)
    public void updateValue(@RequestBody MyDto dto){ {
           service.insert(dto);
    }

}

我的GET和POST端点通过UI中的示例模型很好地生成

仅PATCH无法正常工作...他们的示例模型未生成

解决方法

问题出在JsonPatch对象上,该对象没有任何getter方法,因此Springfox库无法生成用于请求的模型。

一个可能的解决方案可能是,您使用getter和setter创建自定义MyJsonPatch POJO,并使用数据JsonPatch创建一个MyJsonPatch

,

我找不到解决方案,所以我决定使用Swagger的@ApiParam来描述该字段是RFC 6902的实现。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。