扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容主要讲解“如何实现knife4j导出离线接口文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现knife4j导出离线接口文档”吧!
为锡林郭勒盟等地区用户提供了全套网页设计制作服务,及锡林郭勒盟网站建设行业解决方案。主营业务为成都网站设计、做网站、锡林郭勒盟网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
** 导出离线接口文档,妈妈再也不用让我手动写接口文档了 **
1 引入依赖
io.springfox springfox-boot-starter 3.0.0
` com.github.xiaoymin knife4j-spring-boot-starter 3.0.2
2 增加swagger配置类
package com.example.demo.conf; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import io.swagger.annotations.Api; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.context.request.async.DeferredResult; import springfox.documentation.builders.*; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.service.*; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * swagger 配置 * * @author xmtx */ @Configuration @EnableOpenApi @EnableKnife4j public class Swagger3Config { @Bean public Docket systemApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("小明童鞋demo") .genericModelSubstitutes(DeferredResult.class).useDefaultResponseMessages(false).forCodeGeneration(true) .select() .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) // 这里写controller 所在的路径 .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) .paths(PathSelectors.any()).build() .pathMapping("/") // 暂时不加权限认证 // .securitySchemes(Collections.singletonList(securitySchema())) // .securityContexts(Collections.singletonList(securityContext())) .apiInfo(systemApiInfo()); } private ApiInfo systemApiInfo() { return new ApiInfoBuilder() .title("小明童鞋demo") .description("测试swagger整合knife4j生成离线接口文档") .termsOfServiceUrl("https://my.oschina.net/xiaomingnevermind") .contact(new Contact("xmtx", "", "xmtx.2015@gmail.com")) .version("1.0") .build(); } /** * 生成全局通用参数 * * @return */ private ListgetGlobalRequestParameters() { List parameters = new ArrayList<>(); parameters.add(new RequestParameterBuilder() .name("x-access-token") .description("令牌") .required(false) .in(ParameterType.HEADER) .build()); parameters.add(new RequestParameterBuilder() .name("Equipment-Type") .description("产品类型") .required(false) .in(ParameterType.HEADER) .build()); return parameters; } /** * 生成通用响应信息 * * @return */ private List getGlobalResponseMessage() { List responseList = new ArrayList<>(); responseList.add(new ResponseBuilder().code("404").description("找不到资源").build()); return responseList; } // // private OAuth securitySchema() { // // List authorizationScopeList = new ArrayList(); // List grantTypes = new ArrayList(); // GrantType creGrant = new ResourceOwnerPasswordCredentialsGrant("/oauth/token"); // // grantTypes.add(creGrant); // // return new OAuth("oauth3schema", authorizationScopeList, grantTypes); // // } // // private SecurityContext securityContext() { // return SecurityContext.builder() // .securityReferences(defaultAuth()) // .forPaths(PathSelectors.ant("/v1/api/**")) // .build(); // } private List defaultAuth() { final AuthorizationScope[] authorizationScopes = new AuthorizationScope[0]; return Collections.singletonList(new SecurityReference("oauth3schema", authorizationScopes)); } }
1. 3. 编写一个controller进行测试
private static final Logger log = LoggerFactory.getLogger(AspectController.class); @Autowired private AspectService aspectService; @ApiOperation(value = "测试getaspect") @GetMapping(value = "/getaspect") public String getAspect(@ApiParam("名称") String name, @ApiParam Integer age) throws InterruptedException { AspectBean aspectBean = new AspectBean(); aspectBean.setAge(age); aspectBean.setBirthday(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date().getTime())); aspectBean.setSex(1); aspectBean.setName(name); return JSON.toJSONString(aspectService.testAspect(aspectBean)); } @PostMapping(value = "/postaspect") public String postAspect(@RequestBody AspectBean aspectBean) throws InterruptedException { return JSON.toJSONString(aspectService.testAspect(aspectBean)); } @GetMapping(value = "/init") public boolean init() { return aspectService.init(); }
1. 4. 查看效果图
到此,相信大家对“如何实现knife4j导出离线接口文档”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流