当前位置:网站首页>How to form standard interface documents
How to form standard interface documents
2022-07-05 20:22:00 【Mountain King in kindergarten】
One 、 demand
When the front and rear ends are butted , The backend needs to provide a standard , In other words, it is very important for the front end to understand the interface documents . How to use annotations quickly 、 Simply form interface documents .
Two 、Swagger2 Switch knife4j Use
1、 stay pom.xml add knife4j Related dependence of
<!-- Integrate Knife4j-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
2、 stay Swagger2Config Add one @EnableKnife4j annotation , This annotation can open knife4j Enhancements for
@Configuration
@EnableSwagger2
@EnableKnife4j
public class Swagger2Config {
@Bean
public Docket ssoFront() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage(" Package path of the interface "))
.paths(PathSelectors.any())
.build().groupName(" Group name ");
}
@Bean
public Docket ssoAdmin() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.user.controller.admin"))
.paths(PathSelectors.any())
.build().groupName("sso-admin");
}
@Bean
public Docket member() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.user.controller.member"))
.paths(PathSelectors.any())
.build().groupName("member-service");
}
@Bean
public Docket system() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.user.controller.system"))
.paths(PathSelectors.any())
.build().groupName("system-service");
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title(" Module documentation ")
.description(" User module API file ")
.contact(new Contact(" author ", null, null))
.version("v1")
.build();
}
}
3、 Run our SpringBoot application , visit API The document address can be viewed :http://localhost: Port number /doc.html
3、 ... and 、 Functional characteristics
contrast swagger Come on
1、 The returned result set supports folding , Convenient view
2、 The request parameters are JSON Check function
3、 knife4j Support the export of offline documents , Easy to send to others , Support Markdown Format ; Direct selection Document management -> Offline documents
function , And then choose download Markdown
that will do
3、 ... and 、 Use different annotations to form interface documents according to different request methods
One 、swagger Annotation application
1、 In the control layer , Can be in controller Use notes on @Api(tags = " Interface service name ") Mark the function of this controller .
2、 Annotations can be used on specific interfaces @ApiOperation(value = " Mailbox fuzzy matching query service interface ",notes = " Fuzzy matching of mailboxes ") Name the interface and describe the functions of the interface
Two 、@ApiOperation And Get Request annotations to use with
1、 Using annotations @RequestParam(value = " Incoming email ",required = false), Be careful name and value Can't coexist , Otherwise, the interface document cannot be generated .swagger It will automatically recognize this annotation and generate the corresponding document
Get The request data type is :
2、 Use @PathVariable(value = " Incoming email ",required = false) It's the same thing . The only difference is that the request type is different query, One is path
3、 Unwanted @ApiImplicitParam(name = " Mailbox fuzzy matching query ", value = "likeEmail", required = false) This annotation , Otherwise, two same parameters will appear .
3、 ... and 、@ApiOperation And Post Request annotations to use with
1、 Use @RequestBody Annotation request parameter entity . In the entity, add
@ApiModel(value = " XX request message ",description = " XX request message , The parent class is ",parent = class .class)
2、 Add
@ApiModelProperty(value=" So and so attribute ",required = true)
@ApiOperation(" XX request message ")
@PostMapping("edit")
public JsonResult edit(@RequestBody EditDTO dto) {
return
}
swagger It will automatically scan the annotated data in the entity class to form the interface document
3、post Request data format
Four 、 All return messages with return parameters need to specify the return parameters
Only with a clear return message , And in the message Class name @ApiModel And attribute @ApiModelProperty Notes are also used , Then the data type of the returned message will also appear in the interface document .
Corresponding examples will also appear below 、
notes : For the combination of annotations and request types, please refer to the following article
POST、GET、@RequestBody and @RequestParam difference _Archie_java The blog of -CSDN Blog
边栏推荐
猜你喜欢
无卷积骨干网络:金字塔Transformer,提升目标检测/分割等任务精度(附源代码)...
[quick start to digital IC Verification] 8. Typical circuits in digital ICs and their corresponding Verilog description methods
kubernetes资源对象介绍及常用命令(五)-(ConfigMap&Secret)
【数字IC验证快速入门】3、数字IC设计全流程介绍
【数字IC验证快速入门】2、通过一个SoC项目实例,了解SoC的架构,初探数字系统设计流程
Ros2 topic [01]: installing ros2 on win10
Unity编辑器扩展 UI控件篇
Oracle-表空间管理
Leetcode skimming: binary tree 16 (path sum)
Mysql频繁操作出现锁表问题
随机推荐
小程序项目结构
c語言oj得pe,ACM入門之OJ~
.Net分布式事務及落地解决方案
Sort and projection
鸿蒙os第四次学习
19 Mongoose模块化
When JS method passes long type ID value, precision loss will occur
Informatics Olympiad 1338: [example 3-3] hospital setting | Luogu p1364 hospital setting
ByteDance dev better technology salon was successfully held, and we joined hands with Huatai to share our experience in improving the efficiency of web research and development
Leetcode skimming: binary tree 12 (all paths of binary tree)
处理文件和目录名
资源道具化
mongodb文档间关系
Leetcode brush question: binary tree 14 (sum of left leaves)
什么是pyc文件
Go language learning tutorial (XV)
A solution to PHP's inability to convert strings into JSON
14、Transformer--VIT TNT BETR
关于BRAM IP复位的优先级
Practical demonstration: how can the production research team efficiently build the requirements workflow?