swagger接口文档规范化(苍穹外卖)

swagger接口文档规范化

(1)说明:

将接口文档分为管理端和用户端

(2)WebMvcConfiguration修改

位置:sky-server/src/main/java/com/sky/config/WebMvcConfiguration.java

文件完整代码:

package com.sky.config;import com.sky.interceptor.JwtTokenAdminInterceptor;
import com.sky.json.JacksonObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;import java.util.List;/*** 配置类,注册web层相关组件*/
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {@Autowiredprivate JwtTokenAdminInterceptor jwtTokenAdminInterceptor;/*** 注册自定义拦截器** @param registry*/protected void addInterceptors(InterceptorRegistry registry) {log.info("开始注册自定义拦截器...");registry.addInterceptor(jwtTokenAdminInterceptor).addPathPatterns("/admin/**").excludePathPatterns("/admin/employee/login");}/*** 通过knife4j生成接口文档* @return*/@Beanpublic Docket admindocket() {log.info("准备生成接口文档...");//在控制台输出ApiInfo apiInfo = new ApiInfoBuilder().title("苍穹外卖项目接口文档").version("2.0").description("苍穹外卖项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).groupName("管理端接口文档").apiInfo(apiInfo).select()//指定生成接口需要扫描的包.apis(RequestHandlerSelectors.basePackage("com.sky.controller.admin")).paths(PathSelectors.any()).build();return docket;}@Beanpublic Docket userdocket() {log.info("准备生成接口文档...");//在控制台输出ApiInfo apiInfo = new ApiInfoBuilder().title("苍穹外卖项目接口文档").version("2.0").description("苍穹外卖项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).groupName("用户端接口文档").apiInfo(apiInfo).select()//指定生成接口需要扫描的包.apis(RequestHandlerSelectors.basePackage("com.sky.controller.user")).paths(PathSelectors.any()).build();return docket;}/*** 设置静态资源映射* @param registry*/protected void addResourceHandlers(ResourceHandlerRegistry registry) {log.info("开始设置静态支资源映射...");//在控制台输出registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}/*** 扩展Spring MVC框架的消息转换器* @param converters*/protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {log.info("开始扩展Spring MVC框架的消息转换器...");//在控制台输出//创建一个消息转换对象器MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();//需要为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为Json数据converter.setObjectMapper(new JacksonObjectMapper());//将自己的消息转化器加入容器,“0”表示优先执行自定义的消息转化器converterconverters.add(0, converter);}
}

修改的代码:

/*** 通过knife4j生成接口文档* @return*/
@Bean
public Docket admindocket() {log.info("准备生成接口文档...");//在控制台输出ApiInfo apiInfo = new ApiInfoBuilder().title("苍穹外卖项目接口文档").version("2.0").description("苍穹外卖项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).groupName("管理端接口文档").apiInfo(apiInfo).select()//指定生成接口需要扫描的包.apis(RequestHandlerSelectors.basePackage("com.sky.controller.admin")).paths(PathSelectors.any()).build();return docket;
}@Bean
public Docket userdocket() {log.info("准备生成接口文档...");//在控制台输出ApiInfo apiInfo = new ApiInfoBuilder().title("苍穹外卖项目接口文档").version("2.0").description("苍穹外卖项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).groupName("用户端接口文档").apiInfo(apiInfo).select()//指定生成接口需要扫描的包.apis(RequestHandlerSelectors.basePackage("com.sky.controller.user")).paths(PathSelectors.any()).build();return docket;
}

示意图:

(3)启动项目

在网址搜索栏重新输入:http://localhost:8080/doc.html

至此,接口文档规范化设置已完成!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98179.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Transformer 架构的演进与未来方向(RNN → Self-Attention → Mamba)——李宏毅大模型2025第四讲笔记

一句话总结——“所有架构都为了解决上一代模型的致命缺陷而生&#xff1a;CNN 解决参数爆炸&#xff0c;ResNet 解决梯度消失&#xff0c;Transformer 解决 RNN 无法并行&#xff0c;而 Mamba 则试图一次解决 Transformer 的 O(N) 与 RNN 的记忆瓶颈。”1 每种架构的存在理由•…

Vllm-0.10.1:通过vllm bench serve测试TTFT、TPOT、ITL、E2EL四个指标

一、KVM 虚拟机环境GPU:4张英伟达A6000(48G)内存&#xff1a;128G海光Cpu:128核大模型&#xff1a;DeepSeek-R1-Distill-Qwen-32B推理框架Vllm:0.10.1二、四个性能指标介绍2.1、TTFT:Time to First token首次生成token时间&#xff08;ms&#xff09;,TTFT 越短&#xff0c;用户…

逻辑回归基础

昨天一直在复盘梯度下降&#xff0c;都没咋预习逻辑回归&#xff0c;好在不是很难&#xff0c;来捋捋逻辑回归简介逻辑回归是解决分类问题数学基础-sigmoid函数还要回顾一下概率论极大似然估计再来看一下对数逻辑回归原理逻辑回归的损失函数例子&#xff1a;分类问题评估混淆矩…

STM32----W25QXX

W25QXX款图W25QXX存储解读块--->扇-->页块分成128块一块64kb一块分成16扇一扇4kb一个扇区分成16页&#xff0c;页的大小是256个字节 当数据传入W25QXX最小的擦除单元是扇区当已经输入了一页的数据&#xff0c;这时RAM的数据会转存进FLASH&#xff0c;这时会置一个标志位&…

【Kafka】Kafka使用场景用例Kafka用例图

【Kafka】Kafka使用场景用例&Kafka用例图一、Kafka用例总图二、Kafka用例图示三、Kafka场景案例图一、Kafka用例总图 二、Kafka用例图示 三、Kafka场景案例图 注&#xff1a;以上图片来源于网络&#xff0c;如有不妥请私信删除&#xff01;

Altium Designer(AD24)集成开发环境简介

🏡《专栏目录》 目录 1,概述 2,界面介绍 2,搜索功能简介 1,概述 Altium Designer 24的原理图,PCB等设计工作都是在集成开发环境中进行的,本文简单介绍集成开发环境界面。 2,界面介绍 如下图所示,Altium Designer 24的集成开发环境,包括: 标题栏:目前设计中文件的…

[论文阅读] 软件工程 | 告别“线程安全玄学”:基于JMM的Java类静态分析,CodeQL3分钟扫遍GitHub千仓错误

告别“线程安全玄学”&#xff1a;基于JMM的Java类静态分析&#xff0c;CodeQL3分钟扫遍GitHub千仓错误 论文信息类别详情论文原标题Scalable Thread-Safety Analysis of Java Classes with CodeQL主要作者及机构1. Bjrnar Haugstad Jatten&#xff08;哥本哈根IT大学&#xff…

jQuery.ajax() 方法核心参数详解

大家好&#xff0c;欢迎来到程序视点&#xff01;我是你们的老朋友.小二&#xff01;jQuery.ajax() 方法核心参数详解基础参数url类型&#xff1a;String功能&#xff1a;请求地址&#xff0c;默认当前页地址。type类型&#xff1a;String&#xff08;get/post为主&#xff0c;…

LCR 175. 计算二叉树的深度【简单】

LCR 175. 计算二叉树的深度【简单】 题目描述 某公司架构以二叉树形式记录&#xff0c;请返回该公司的层级数。 示例 1&#xff1a;输入&#xff1a;root [1, 2, 2, 3, null, null, 5, 4, null, null, 4] 输出: 4 解释: 上面示例中的二叉树的最大深度是 4&#xff0c;沿着路…

AI驱动健康升级:新零售企业从“卖产品”到“卖健康”的转型路径

随着健康意识的不断提升&#xff0c;健康管理增值服务正逐渐成为零售企业的核心竞争力。消费者对“产品服务”的需求激增&#xff0c;企业亟需构建覆盖健康评估、干预到跟踪的营养健康管理体系&#xff0c;通过数据化手段提升用户粘性。在此背景下&#xff0c;AI技术正推动健康…

2025年最新三维WebGIS开发学习路线图深度解析

地信小白为何学习webgis&#xff1f;我们在后台经常收到同学们关于地信测绘等专业的吐槽&#xff0c;总结后主要分为以下几类&#xff1a;第一种吐槽学校理论与实践脱节的&#xff0c;学校课程偏重理论&#xff0c;缺乏企业级真实项目经验&#xff0c;导致同学们简历空洞、单一…

15-Java-面向对象-标准JavaBean类

文章目录标准JavaBean类标准JavaBean类 类名需要见名知意成员变量使用private修饰提供至少两个构造方法 无参构造方法带全部参数的构造方法 成员方法 提供每一个成员变量对应的setXxx&#xff08;&#xff09;/getXxx&#xff08;&#xff09;如果还有其他行为&#xff0c;也需…

AI大模型应用研发工程师面试知识准备目录

一、大模型核心基础理论 大模型核心架构&#xff1a;Transformer&#xff08;Encoder/Decoder结构、自注意力机制、多头注意力&#xff09;、GPT系列&#xff08;Decoder-only&#xff09;、BERT系列&#xff08;Encoder-only&#xff09;的差异与适用场景关键技术原理&#xf…

基于单片机汽车防撞系统设计

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;单片机作品题目速选一览表&#x1f680; &#x1f449;&#x1f449;&#x1f449;&#x1f449;单片机作品题目功能速览&#x1f680; &#x1f525;更多文章戳&#x1f449;小新单片机-CSDN博客&#x1f68…

《Java线程池面试全解析:从原理到实践的高频问题汇总》

线程池作为Java并发编程的核心组件&#xff0c;是面试中的必考知识点。无论是初级开发岗还是资深架构岗&#xff0c;对线程池的理解深度往往能反映候选人的并发编程能力。本文汇总了线程池相关的高频面试题&#xff0c;并提供清晰、深入的解答&#xff0c;助你轻松应对各类面试…

波特率vs比特率

一、核心定义1. 波特率&#xff08;Baud Rate&#xff09;定义&#xff1a;单位时间内传输的 “信号符号&#xff08;Symbol&#xff09;” 数量&#xff0c;单位为 “波特&#xff08;Baud&#xff09;”。这里的 “符号” 是通信中的基本信号单元&#xff0c;指信号在物理层的…

AI 生成式艺术重塑动漫角色创作:从技术逻辑到多元可能性(一)

当《蜘蛛侠&#xff1a;纵横宇宙》中风格迥异的角色群像惊艳银幕&#xff0c;当《鬼灭之刃》的 “柱” 系列角色凭借鲜明人设圈粉无数&#xff0c;动漫角色早已超越 “故事载体” 的属性&#xff0c;成为承载世界观、传递情感的核心符号。传统动漫角色创作往往依赖团队数月甚至…

npm install 报错问题解决 npm install --ignore-scripts

为避免恶意依赖包中的病毒&#xff0c;推荐使用npm命令时添加–ignore-scripts参数&#xff0c;以禁用第三方依赖包的预安装或安装后脚本。然而&#xff0c;某些依赖包需这些脚本才能正常工作。# 原 报错 npm install # 改为 npm install --ignore-scripts我遇到的以下2种报错都…

四个关于云属性的四个卫星数据集的介绍

一、前言 Himawari-8/9 (AHI)、Meteosat (SEVIRI)、GOES (ABI)、CLAAS-3&#xff0c;四个数据集/传感器&#xff0c;它们其实都属于静止气象卫星&#xff08;GEO&#xff09;云和辐射产品&#xff0c;在降水、云属性和能量收支研究中应用很广&#xff0c;AHI&#xff08;亚太&a…

browser use完整梳理

brower use完整逻辑梳理 browser use的完整一次运行过程 INFO [service] Using anonymized telemetry, see https://docs.browser-use.com/development/telemetry. WARNING [Agent] ⚠️ DeepSeek models do not support use_visionTrue yet. Setting use_visionFalse for…