1

我有以下 springboot 休息控制器并使用 springdoc-openapi。我的 springboot 休息服务必须迎合一些遗留应用程序(这是调用此服务的唯一客户端),我需要将 HttpServletRequest 作为参数。

我正在生成 swagger openapi doc,当我到达 swagger-ui.html 时,我看到 rerquest 正文来自 Httprequest 参数方法,uri path = '/personhttprequest' 但不是当参数是 HttpServletRequest 时。我在这里看到 https://springdoc.org/faq.html#what-are-the-ignored-types-in-the-documentation

但我不清楚为什么以及如何让 HttpServletRequest 参数在 swagger ui 中工作。我想将它作为 text/xml 传递,就像我可以让它在下面的 HttpRequest 中工作一样。在此处输入图像描述我已经为“/personhttprequest”附加了 scrrenshot,当 xml 出现时,您会看到请求正文的框。如何使它适用于“/personhttpservletrequest”?

@RestController
public class PersonController {
   
    
    @RequestMapping(path = "/personhttprequest", method = RequestMethod.POST,consumes=MediaType.TEXT_XML_VALUE,produces=MediaType.APPLICATION_JSON_VALUE)
    public Person personHttpRequest(HttpRequest req) {
        Person person = new Person();
        return person;
    }
    
    @RequestMapping(path = "/personhttpservletrequest", method = RequestMethod.POST,consumes=MediaType.TEXT_XML_VALUE,produces=MediaType.APPLICATION_JSON_VALUE)
    public Person personHttpServletRequest(HttpServletRequest req) {
        Person person = new Person();
        return person;
    }
}

这是 git 集线器: https ://github.com/vmisra2018/sb-example-swaggerdoc

4

1 回答 1

1

不包括 Spring MVC 支持的 Principal、Locale、HttpServletRequest 和 HttpServletResponse 以及其他可注入参数。

完整的文档在这里:

如果您不想忽略它:

    SpringDocUtils.getConfig().removeRequestWrapperToIgnore(HttpServletRequest.class)
于 2020-08-13T17:37:58.527 回答