swagger2页面上无法传入多文件,解决,引入其他插件
<!--swagger2-->
<dependency>
<groupId></groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId>swagger-annotations</artifactId>
</exclusion>
<exclusion>
<groupId></groupId>
<artifactId>swagger-models</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.21</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.21</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger插件-->
<dependency>
<groupId></groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>2.9.2</version>
</dependency>
代码
@ApiOperation(value = "附件上传", tags = "附件上传", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@PostMapping(value = "/upload")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "form", name = "files", value = "文件", allowMultiple = true, dataType = "__file")})
public void upload(@ApiParam(value = "文件") @RequestPart(value = "files") MultipartFile[] files) {
try {
for (MultipartFile file : files) {
// 使用 BufferedReader 逐行读取文件内容
BufferedReader reader = new BufferedReader(new InputStreamReader((),"UTF-8"));
String line;
while ((line = ()) != null) {
// 打印每一行内容
("----"+line);
}
();
}
} catch (IOException e) {
// 处理读取文件时的异常
();
}
}
页面
http://localhost:8080/
swagger2依赖、导出接口文档
<!--Swagger-UI API文档生产工具-->
<dependency>
<groupId></groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>ncy>
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ..EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//为当前包下controller生成API文档
.apis((""))
//为有@Api注解的Controller生成API文档
.apis(())
//为有@ApiOperation注解的方法生成API文档
.apis(())
.paths(())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("xxxx项目")
.description("xx接口")
.contact("xxx")
.version("1.0")
.build();
}
}
第一种控制导出
<!--导出swagger api接口文档 v1-->
<dependency>
<groupId>.swagger2markup</groupId>
<artifactId>swagger2markup</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>paleo-core</artifactId>
<version>0.10.2</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>vavr</artifactId>
<version>0.9.2</version>
</dependency>
<!-- 导出接口文档v1的控制层代码-->
import .;
import .;
import .swagger2markup.Swagger2MarkupConfig;
import .swagger2markup.Swagger2MarkupConverter;
import ..Swagger2MarkupConfigBuilder;
import .;
import ;
import ;
import ;
/**
* @author: YanZanJie
* @date: 2021/4/26 8:57
*/
public class SwaggerTo {
/**
* 生成AsciiDocs格式文档
* @throws Exception
*/
@Test
public void generateAsciiDocs() throws Exception {
// 输出Ascii格式
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage()
.withOutputLanguage()
.withPathsGroupedBy()
.withGeneratedExamples()
.withoutInlineSchema()
.build();
(new URL("http://127.0.0.1:8082/v2/api-docs"))
.withConfig(config)
.build()
.toFolder(("./docs/asciidoc/generated"));
}
/**
* 生成Markdown格式文档
* @throws Exception
*/
@Test
public void generateMarkdownDocs() throws Exception {
// 输出Markdown格式
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage()
.withOutputLanguage()
.withPathsGroupedBy()
.withGeneratedExamples()
.withoutInlineSchema()
.build();
(new URL("http://localhost:8082/v2/api-docs"))
.withConfig(config)
.build()
.toFolder(("./docs/markdown/generated"));
}
/**
* 生成Confluence格式文档
* @throws Exception
*/
@Test
public void generateConfluenceDocs() throws Exception {
// 输出Confluence使用的格式
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage(MarkupLanguage.CONFLUENCE_MARKUP)
.withOutputLanguage()
.withPathsGroupedBy()
.withGeneratedExamples()
.withoutInlineSchema()
.build();
(new URL("http://localhost:8082/v2/api-docs"))
.withConfig(config)
.build()
.toFolder(("./docs/confluence/generated"));
}
/**
* 生成AsciiDocs格式文档,并汇总成一个文件
* @throws Exception
*/
@Test
public void generateAsciiDocsToFile() throws Exception {
// 输出Ascii到单文件
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage()
.withOutputLanguage()
.withPathsGroupedBy()
.withGeneratedExamples()
.withoutInlineSchema()
.build();
(new URL("http://localhost:8082/v2/api-docs"))
.withConfig(config)
.build()
.toFile(("./docs/asciidoc/generated/all"));
}
/**
* 生成Markdown格式文档,并汇总成一个文件
* @throws Exception
*/
@Test
public void generateMarkdownDocsToFile() throws Exception {
// 输出Markdown到单文件
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage()
.withOutputLanguage()
.withPathsGroupedBy()
.withGeneratedExamples()
.withoutInlineSchema()
.build();
(new URL("http://localhost:8082/v2/api-docs"))
.withConfig(config)
.build()
.toFile(("./docs/markdown/generated/all"));
}
}
swagger2导出第二种方法(html、pdf)
<!-- ********************* swagger导出PDF/HTML所需依赖 START ********************************* -->
<dependency>
<groupId>.swagger2markup</groupId>
<artifactId>swagger2markup</artifactId>
<version>1.3.1</version>
</dependency>
<!--此插件生成ASCIIDOC-->
<plugin>
<groupId>.swagger2markup</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<configuration>
<!--此处端口一定要是当前项目启动所用的端口-->
<swaggerInput>http://localhost:8082/v2/api-docs</swaggerInput>
<outputDir>docs/asciidoc/generated</outputDir>
<config>
<!-- 除了ASCIIDOC之外,还有MARKDOWN和CONFLUENCE_MARKUP可选 -->
<>ASCIIDOC</>
</config>
</configuration>
</plugin>
<!--此插件生成HTML和PDF-->
<plugin>
<groupId></groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.3</version>
<!-- Include Asciidoctor PDF for pdf generation -->
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>asciidoctorj-pdf</artifactId>
<version>1.5.0-alpha.10.1</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>jruby-complete</artifactId>
<version>1.7.21</version>
</dependency>
</dependencies>
<!-- Configure generic document generation settings -->
<configuration>
<sourceDirectory>docs/asciidoc/generated</sourceDirectory>
<sourceHighlighter>coderay</sourceHighlighter>
<attributes>
<toc>left</toc>
</attributes>
</configuration>
<!-- Since each execution can only handle one backend, run
separate executions for each desired output type -->
<executions>
<execution>
<id>output-html</id>
<phase>generate-resources</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>html5</backend>
<outputDirectory>docs/asciidoc/html</outputDirectory>
</configuration>
</execution>
<execution>
<id>output-pdf</id>
<phase>generate-resources</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>pdf</backend>
<outputDirectory>docs/asciidoc/pdf</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
先后运行
mvn asciidoctor:process-asciidoc
mvn generate-resources
第三种方法
<!--swagger2markup-->
<dependency>
<groupId>.swagger2markup</groupId>
<artifactId>swagger2markup</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>pegdown</artifactId>
<version>1.4.2</version>
</dependency>
<plugin>
<groupId>.swagger2markup</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.3.4</version>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>pegdown</artifactId>
<version>1.4.2</version>
</dependency>
</dependencies>
<configuration>
<swaggerInput>http://localhost:${}/v2/api-docs</swaggerInput>
<!--<outputDir>./docs/asciidoc/generated/all</outputDir>-->
<outputFile>./docs/asciidoc/generated/all</outputFile>
<config>
<>ASCIIDOC</>
<>ASCIIDOC</>
<>ZH</>
<>true</>
<>TAGS</>
</config>
</configuration>
</plugin>
<!--生成api-->
<plugin>
<groupId></groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.6</version>
<configuration>
<!--asciidoc文件目录,请确认文件已经存在-->
<sourceDirectory>./docs/asciidoc/generated</sourceDirectory>
<!---生成html的路径-->
<outputDirectory>./docs/asciidoc/html</outputDirectory>
<headerFooter>true</headerFooter>
<doctype>book</doctype>
<backend>html5</backend>
<sourceHighlighter>coderay</sourceHighlighter>
<attributes>
<toc>left</toc>
<toclevels>3</toclevels>
<sectnums>true</sectnums>
</attributes>
</configuration>
</plugin>