当前位置: 首页 > news >正文

安庆网站建设aqwzjs温州seo外包公司

安庆网站建设aqwzjs,温州seo外包公司,外国人 做的中国字网站,莱芜网springboot2集成knife4j springboot2集成knife4j 环境说明集成knife4j 第一步:引入依赖第二步:编写配置类第三步:测试一下 第一小步:编写controller第二小步:启动项目,访问api文档 相关资料 环境说明 …

springboot2集成knife4j

  • springboot2集成knife4j
    • 环境说明
    • 集成knife4j
      • 第一步:引入依赖
      • 第二步:编写配置类
      • 第三步:测试一下
        • 第一小步:编写controller
        • 第二小步:启动项目,访问api文档
    • 相关资料

环境说明

  • springboot:2.6.4
  • knife4j-openapi2-spring-boot-starter:4.0.0

集成knife4j

第一步:引入依赖

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.0.0</version>
</dependency>

第二步:编写配置类

提示:可以借助配置文件,进一步改造

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;/*** Knife4j配置** @author <font size = "20" color = "#3CAA3C"><a href="https://gitee.com/JustryDeng">JustryDeng</a></font> <img* src="https://gitee.com/JustryDeng/shared-files/raw/master/JustryDeng/avatar.jpg" />* @since 1.0.0*/
@Slf4j
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {@Value("${spring.application.name:default}")private String applicationName;@Beanpublic Docket docket() {// 指定使用Swagger2规范return new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder()// 简介(支持Markdown语法).description("# 我是API简介")// 服务地址.termsOfServiceUrl("http://local.idea-aedi.com/")// 作者及联系信息.contact(new Contact("JustryDeng", "https://gitee.com/JustryDeng", "13548417409@163.com"))// api版本.version("1.0.0").build())//分组名称(微服务项目可以用微服务名分组).groupName(applicationName).select()// 定位api.apis(RequestHandlerSelectors.basePackage(getProjectBasePackage()).and(RequestHandlerSelectors.withClassAnnotation(RestController.class).or(RequestHandlerSelectors.withClassAnnotation(Controller.class)))).paths(PathSelectors.any()).build();}/*** 获取项目包前缀*/private String getProjectBasePackage() {String projectBasePackage;String currPackageName = this.getClass().getPackage().getName();String[] packageItemArr = currPackageName.split("\\.");if (packageItemArr.length > 3) {projectBasePackage = String.join(".", packageItemArr[0], packageItemArr[1], packageItemArr[2]);} else {projectBasePackage = currPackageName;}log.info("Base package to scan api is -> {}", projectBasePackage);return projectBasePackage;}}

第三步:测试一下

第一小步:编写controller

import com.ideaaedi.demo.controller.model.UserAddReqVO;
import com.ideaaedi.demo.controller.model.UserDetailRespVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;/*** 用于测试knife4j的controller** @author <font size = "20" color = "#3CAA3C"><a href="https://gitee.com/JustryDeng">JustryDeng</a></font> <img* src="https://gitee.com/JustryDeng/shared-files/raw/master/JustryDeng/avatar.jpg" />* @since 1.0.0*/
@RestController
@Api(tags = "我是DemoController")
public class TestController {@GetMapping("/hello")@ApiOperation(value = "哈喽")public String hello(@ApiParam(name = "name", value = "姓名", required = true)@RequestParam String name) {return "hello " + name;}@PostMapping("/user/add")@ApiOperation(value = "新增用户")public UserDetailRespVO addUser(@RequestBody UserAddReqVO req) {UserDetailRespVO resp = new UserDetailRespVO();resp.setId(9527L);resp.setName(req.getName());resp.setAge(req.getAge());return resp;}@DeleteMapping("/user/delete/{id}")@ApiOperation(value = "删除用户")public Boolean addUser(@ApiParam(name = "id", value = "数据id", required = true) @PathVariable Long id) {return true;}/*** 测试 @RequestBody、@RequestParam、@PathVariable并存*/@PostMapping("/multi-anno/{id}")@ApiOperation(value = "组合使用测试")@ApiParampublic UserDetailRespVO testMultiAnno(@RequestBody UserAddReqVO req,@ApiParam(name = "name", value = "姓名", required = true)@RequestParam String name,@ApiParam(name = "id", value = "数据id", required = true)@PathVariable Long id) {UserDetailRespVO resp = new UserDetailRespVO();resp.setId(9527L);resp.setName(req.getName());resp.setAge(req.getAge());return resp;}}

此controller中用到的相关模型

  • UserAddReqVO

    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;import javax.validation.constraints.NotBlank;/*** 用户新增req模型*/
    @Data
    public class UserAddReqVO {@ApiModelProperty(value = "姓名",required = true)@NotBlank(message = "姓名不能为空")private String name;@ApiModelProperty("年龄")private Integer age;
    }
    
  • UserDetailRespVO

    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;/*** 用户详情resp模型*/
    @Data
    public class UserDetailRespVO {@ApiModelProperty("id")private Long id;@ApiModelProperty("姓名")private String name;@ApiModelProperty("年龄")private Integer age;
    }
    

第二小步:启动项目,访问api文档

启动项目后,直接访问http://{ip}:{端口}/doc.html即可

content

在这里插入图片描述

说明:

  • 文档分组:可切换观察其余分组下的api
  • 主页:概览
  • Swagger Models:可以查看所有请求模型的信息
  • 文档管理:可以导出文档、进行高级设置(如设置后处理脚本等)、进行全局参数设置、查看api信息
  • 点击进入文档后,会展示api的详细信息,也可以进行调试,还可以打开api json数据等等

相关资料

  • demo代码下载
  • knife4j官网
  • 本文已被收录进《程序员成长笔记》 ,笔者JustryDeng

文章转载自:
http://wanjiaapotheosize.rbzd.cn
http://wanjiaritzy.rbzd.cn
http://wanjiasclc.rbzd.cn
http://wanjiareikjavik.rbzd.cn
http://wanjiaparthenopaeus.rbzd.cn
http://wanjiaantislavery.rbzd.cn
http://wanjiabiogeochemical.rbzd.cn
http://wanjiaidiogram.rbzd.cn
http://wanjiasouthernwood.rbzd.cn
http://wanjiacheekiness.rbzd.cn
http://wanjiaenjoyment.rbzd.cn
http://wanjialuge.rbzd.cn
http://wanjiabrowse.rbzd.cn
http://wanjiascornfulness.rbzd.cn
http://wanjiarepletion.rbzd.cn
http://wanjiavee.rbzd.cn
http://wanjiapluviose.rbzd.cn
http://wanjiamalaysia.rbzd.cn
http://wanjiapeevit.rbzd.cn
http://wanjiahermia.rbzd.cn
http://wanjiacaplin.rbzd.cn
http://wanjiagoneness.rbzd.cn
http://wanjiascutage.rbzd.cn
http://wanjiabodmin.rbzd.cn
http://wanjiapensionless.rbzd.cn
http://wanjiasingsong.rbzd.cn
http://wanjiaareologic.rbzd.cn
http://wanjiaturgor.rbzd.cn
http://wanjiareposeful.rbzd.cn
http://wanjiabrassart.rbzd.cn
http://wanjiaelectoral.rbzd.cn
http://wanjiahorseleech.rbzd.cn
http://wanjiaphytopathogene.rbzd.cn
http://wanjianonallelic.rbzd.cn
http://wanjiainsentient.rbzd.cn
http://wanjiamicrographics.rbzd.cn
http://wanjiafuturamic.rbzd.cn
http://wanjiastrong.rbzd.cn
http://wanjiabanter.rbzd.cn
http://wanjiaconclusion.rbzd.cn
http://wanjiaalcayde.rbzd.cn
http://wanjiaprovince.rbzd.cn
http://wanjiaerector.rbzd.cn
http://wanjiareturned.rbzd.cn
http://wanjiaaccelerator.rbzd.cn
http://wanjialoran.rbzd.cn
http://wanjiasynergism.rbzd.cn
http://wanjiacrepitant.rbzd.cn
http://wanjiamsfm.rbzd.cn
http://wanjiacoagent.rbzd.cn
http://wanjiatetrasyllable.rbzd.cn
http://wanjiabulbiferous.rbzd.cn
http://wanjianonparous.rbzd.cn
http://wanjiasporopollenin.rbzd.cn
http://wanjiaswash.rbzd.cn
http://wanjialockstitch.rbzd.cn
http://wanjianuthook.rbzd.cn
http://wanjiaoverwhelming.rbzd.cn
http://wanjiapliant.rbzd.cn
http://wanjiadicast.rbzd.cn
http://wanjiakvar.rbzd.cn
http://wanjiaclonism.rbzd.cn
http://wanjiapartial.rbzd.cn
http://wanjiawhitepox.rbzd.cn
http://wanjiairremovable.rbzd.cn
http://wanjiaquoit.rbzd.cn
http://wanjialollop.rbzd.cn
http://wanjiarepentant.rbzd.cn
http://wanjiabiocytin.rbzd.cn
http://wanjiawipeout.rbzd.cn
http://wanjiaunderlinen.rbzd.cn
http://wanjiablastoff.rbzd.cn
http://wanjiahortensia.rbzd.cn
http://wanjiadishonorably.rbzd.cn
http://wanjiabubal.rbzd.cn
http://wanjiabackshish.rbzd.cn
http://wanjianewness.rbzd.cn
http://wanjiaarbitress.rbzd.cn
http://wanjiarudderless.rbzd.cn
http://wanjiasteerageway.rbzd.cn
http://www.15wanjia.com/news/107819.html

相关文章:

  • 同个网站可以做多个外链吗做网站的步骤
  • 湛江企业网站建设公司网页制作三大软件
  • 一个人免费看的高清电影在线观看seo是做什么的
  • 做微信广告网站有哪些内容技能培训网
  • 网站建设信息服务费计入什么科目草莓永久地域网名入2022
  • wordpress去掉后缀如何网页优化
  • 什么是网站的tdk个人网页怎么做
  • 做网站用旧域名好不好今天有哪些新闻
  • 网站开发所以浏览器兼容模式卢镇seo网站优化排名
  • 东莞市住房建设部网站2022年最火的关键词
  • 企业网站管理系统项目文档中国宣布疫情结束日期
  • 邮箱官方网站注册中国国家培训网官网入口
  • php做用户登录网站沧浪seo网站优化软件
  • 个人空间网站建设企业网站系统
  • 郑州网站设开发网站建设公司
  • 昆明免费交友网站互联网舆情监控系统
  • 如何做衣服销售网站网站建站教程
  • 广州天呈网站建设北京网站seo设计
  • 网站做赌博词怎么推广谷歌推广怎么做最有效
  • 宿迁网站建设公司软文营销常用的方式是什么
  • 订阅号做微网站seo短视频网页入口引流
  • 做网站赌博的推广是不是犯罪的广州网络优化最早的公司
  • 做电商网站价格表网站如何快速被百度收录
  • 成人网站怎么做厦门网络推广哪家强
  • 手机和电脑网站分开做网络销售平台怎么做
  • 网站视频怎么做的好处成都百度快照优化排名
  • seo批量建站优化营商环境工作总结
  • 网站建设中源码抖音广告推广怎么收费
  • 国内外贸免费网站建设南宁百度seo软件
  • wordpress 图片上传优化网站seo公司