失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 知识星球-伙伴匹配系统笔记3

知识星球-伙伴匹配系统笔记3

时间:2024-05-24 15:13:09

相关推荐

知识星球-伙伴匹配系统笔记3

伙伴匹配系统03

1.计划

1.Java后端整合Swagger+Knife4j接口文档

2.存量用户信息导入以及同步

3.前后端联调:搜索页面,用户信息页,用户信息修改页

4.标签内容整理,部分细节优化

2.开始

1.Java后端整合Swagger+Knife4j接口文档

背景提要:

什么是接口文档?

​ 写接口信息的文档,每条接口包括:

请求参数

响应参数

错误码

接口地址

接口名称

请求类型

请求格式

备注

谁用接口文档?

​ 一般是后端或者负责人来提供,前端或后端都要使用

为什么需要接口文档?

有个书面内容(背书或者归档),便于大家参考或者查阅,便于沉淀和维护,拒绝口口相传接口文档便于前端和后端开发对接,前后端联调的介质。后端=>接口文档<=前端好的接口文档支持在线测试,可以做为工具,提高我们的开发测试效率

如何做接口文档?

手写(腾讯文档,markdown笔记)自动化接口文档接口生成:Swagger,Postman(测试接口管理),Apifox,Apipost,eolink

Swagger原理

​ 1.引入依赖(Swagger 或 Knife4j:/knife4j/documentation/get_start.html)

​ 2.自定义Swagger配置类

​ 3.定义需要生成接口文档代码的位置(Controller),线上环境不能把接口全部暴露出去,可以在SwaggerConfig中加上@Profile({“dev”,“test”})限定配置仅在部分环境中开启

​ 4.踩坑:springboot>=2.6,需要添加如下配置

springmvc:pathmatch:matching-strategy: ant_path_matcher

​ 5.可以通过在 controller 方法上添加 @Api、@ApiImplicitParam(name = “name”,value = “姓名”,required = true) @ApiOperation(value = “向客人问好”) 等注解来自定义生成的接口描述信息

todo隐藏接口

2.存量用户信息导入以及同步

把所有星球用户的信息导入

把写了自我介绍的同学的标签信息导入

3.看上了网页信息,怎么抓到?

分析原网站是怎么获取这些数据的?哪个接口?

按 F 12 打开控制台,查看网络请求,复制 curl 代码便于查看和执行:

curl "/v2/hashtags/28855145112241/topics?count=20" ^-H "authority: " ^-H "accept: application/json, text/plain, */*" ^-H "accept-language: zh-CN,zh;q=0.9,en;q=0.8" ^-H "cache-control: no-cache" ^-H "origin: " ^-H "pragma: no-cache" ^-H "referer: /" ^-H "sec-ch-ua: ^\^"Not/A)Brand^\^";v=^\^"99^\^", ^\^"Google Chrome^\^";v=^\^"115^\^", ^\^"Chromium^\^";v=^\^"115^\^"" ^-H "sec-ch-ua-mobile: ?0" ^-H "sec-ch-ua-platform: ^\^"Windows^\^"" ^-H "sec-fetch-dest: empty" ^-H "sec-fetch-mode: cors" ^-H "sec-fetch-site: same-site" ^

EasyExcel

两种读对象的方式:

确定表头:建立对象,和表头形成映射关系不确定表头:每一行数据映射为 Map<String, Object>

两种读取模式:

监听器:先创建监听器、在读取文件时绑定监听器。单独抽离处理逻辑,代码清晰易于维护;一条一条处理,适用于数据量大的场景。同步读:无需创建监听器,一次性获取完整数据。方便简单,但是数据量大时会有等待时常,也可能内存溢出。

3.实践

​ 1.导入knife4j-spring-boot-starter包

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

​ 上图:

​ 2.创建Swagger配置依赖,代码如下:

package com.hyx.getfriend.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;/*** 自定义 Swagger 接口文档的配置**/@Configuration@EnableSwagger2WebMvc//@Profile({"dev", "test"})public class SwaggerConfig {@Bean(value = "defaultApi2")public Docket defaultApi2() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()// 这里一定要标注你控制器的位置.apis(RequestHandlerSelectors.basePackage("com.hyx.getfriend.controller")).paths(PathSelectors.any()).build();}/*** api 信息* @return*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("伙伴匹配").description("伙伴匹配接口文档").termsOfServiceUrl("/qq_52642109").contact(new Contact("coderhyx","/qq_52642109","xxx@")).version("1.0").build();}}

上图:

启动项目

访问接口文档地址,发现接口文档已生成

http://localhost:8080/api/doc.html

当然,我们也可以在线做调试,看看接口是否能成功响应并返回数据

这样,我们的接口文档就做好啦,接口文档还有很多功能,这里就不多演示啦。

有时候,我们不希望我们的接口文档暴露在外,那么我们如何隐藏接口文档呢。

添加配置

这样,我们的接口文档就成功隐藏了

如果觉得《知识星球-伙伴匹配系统笔记3》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。