Code Monkey home page Code Monkey logo

Comments (13)

xiaoymin avatar xiaoymin commented on July 1, 2024 1

感谢反馈,我后面有空看一下

ps:其实通过issues反馈交流更好:)

from knife4j.

zhangchaoxu avatar zhangchaoxu commented on July 1, 2024 1

我又试了一下,@parameters是可行的,参数解释也能出来,这么写试试@parameter(name = "file", description = "文件", required = true, in = ParameterIn.DEFAULT, schema = @Schema(name = "file", format = "binary"))

from knife4j.

jamesxujoy avatar jamesxujoy commented on July 1, 2024

文件可以通过这种方式的注解去配置:@parameter(name = "file", description = "文件", required = true, content = @content(mediaType = MediaType.APPLICATION_OCTET_STREAM_VALUE, schema = @Schema(type = "string", format = "binary"))),我试过是可以的。
但问题是如果文件字段是在某个实体类里,这个实体类作为controller方法的参数,那swagger不返回这个文件字段,前端也无法显示。

from knife4j.

jmszwzr avatar jmszwzr commented on July 1, 2024

@jamesxujoy 你用的也是knife4j-openapi3-jakarta-spring-boot-starter4.5.0的版本么?我本地用你这么配置之后,在doc.html打开中还是不能上传文件,有点囧...以下是本地贴图
1.业务代码(knife4j-openapi3-jakarta-spring-boot-starter 4.5.0实现方式)
01

2.前端访问(knife4j-openapi3-jakarta-spring-boot-starter 4.5.0实现方式)
02

PS:
旧版knife4j-spring-boot-starter 3.0.3(升级前的前端正常访问)
03
旧版knife4j-spring-boot-starter 3.0.3(后端配置)
04

from knife4j.

zhangchaoxu avatar zhangchaoxu commented on July 1, 2024

@jmszwzr 问题5文件上传不显示的问题,反馈一下解决办法,将@RequestParam改为@RequestPart即可。

我尝试了@parameter修改,@PostMaping中定义consumer,都不生效。最后在issue407找到答案。将@RequestParam改为@RequestPart即可。

from knife4j.

jmszwzr avatar jmszwzr commented on July 1, 2024

@zhangchaoxu 感谢回复 不过我升级Knife到4.5.0之后,接收file使用的注解还是@RequestPart并没有更改,请查看[1.业务代码(knife4j-openapi3-jakarta-spring-boot-starter 4.5.0实现方式)]

from knife4j.

zhangchaoxu avatar zhangchaoxu commented on July 1, 2024

那就更诡异了,我现在也是用的knife4j-openapi3-jakarta-spring-boot-starter 4.5.0+springboot 3.3.0。
@RequestParam替换成@RequestPart后,解决了问题。

image
image

from knife4j.

jmszwzr avatar jmszwzr commented on July 1, 2024

@zhangchaoxu 厉害 05796003,我把我本地接口上的@parameters注解注释掉之后,也是可以的了,原来Knife4j可以自动识别@RequestPart注解;不过这样,对于其他参数,在swagger文档中就没法进行参数说明了,是不是?
001

from knife4j.

jmszwzr avatar jmszwzr commented on July 1, 2024

@zhangchaoxu 按照兄台的配置,本地也测试成功了!感谢!

from knife4j.

jmszwzr avatar jmszwzr commented on July 1, 2024

@zhangchaoxu 兄台,请教你,升级到Knife4j4.5.0之后,你的Controller层排序还能正常吗?我本地使用@apisupport注解排序时发现,第一个分组有问题,第二个分组又是正常的,在F12中看到第一个分组中竟然没有返回tags属性,真的奇怪,不过我推测可能是Knife4j的bug。

附图

图一:本地KnifeConfig配置
01

图二:分组一和分组二Swagger请求访问排序对比(想让Controller层按照给定的order值进行排序,排序号即是分组Controller中序号值,如1-系统公共方法,那么1就是@apisupport(order = 1)中的order值)
02

图三:分组一和分组二F12中区别
03

from knife4j.

jmszwzr avatar jmszwzr commented on July 1, 2024

针对问题2已经有解决方法!

在Gitee中翻看到有同类型问题,在Gitee-I7U2I0中"BlueCup"提到:解决了我的问题,我是前端没有出现tags节点,原来是@tag中没有写description,我的排序可以了。

原来我在系统模块中的Controller中所有接口写了description,但是没有文字描述,导致系统模块在Swagger请求中,没出现tags标签,所以导致在类Controller中的@apisupport设置的值不生效!!

后续:为什么不给@tag中的description进行文字描述,前端请求中就出现不了tags标签,进而导致@apisupport失效,确实是个问题哈~ @xiaoymin

from knife4j.

jmszwzr avatar jmszwzr commented on July 1, 2024

针对问题3已经得到解决!

Knife4j从3.0.3升级至4.5.0的记录中的Knife4jConfig配置,主要就是在GroupedOpenApi的初始化中,增加addOpenApiCustomizer自定义配置,获取到全部Paths后,使用本地封装的将原来的ApiResponses替换掉即可,目前替换的就是常用的put/get/delete/post四种请求方式。

from knife4j.

jmszwzr avatar jmszwzr commented on July 1, 2024

针对问题4,本地最新数次重启访问Swagger均未复现,且留待看;现在就只剩下问题1了!

from knife4j.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.