一、前置知识点
1、接口文档
1.1 什么是接口文档?
- 在项目开发中,web项目的前后端分离开发、APP开发,需要有前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前一直要维护。
1.2 为什么要使用接口文档?
(1)项目开发过程中前后端工程师有一个相同的文件进行沟通交流开发
(2)项目维护或项目项目人员更迭是,方便后期人员查看、维护
1.3 接口规范是什么?
(1)方法:新增(POST);修改(PUT);删除(DELETE);获取(GET);
(2)uri:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾;
(3)请求参数/返回参数:请求参数和返回参数,都分为5列:字段、说明、类型、备注、是否必填 字段是类的属性;说明是中文释义;类型是属性类型,只有String、Number、Object、Array四种类型;备注是一些解释,或者可以写一下例子,比如负责json结构的情况,最好写上例子,好让前端能更好理解;
当我们按照以上规定去写文档时,发现太过于麻烦,如果系统接口过多,接口文档就会太复杂,不方便阅读,而且程序员也不擅长写文档,所以我们需要一个自动帮我们生成接口文档的工具
2、Swagger
2.1 Swagger是什么?
- 是一款让你更好的书写API文档的规范且完整框架
- 提供描述、生产、消费和可视化RESTful Web Service
- 是由庞大工具集合支撑的形式化规范。这个集合涵盖了从终端用户接口、底层代码库到商业 API管理的方方面面
2.2 如何配置Swagger
2.2.1 在pom文件中导入Swagger的依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2.2.2 在config包下新建一个SwaggerConfig配置类
package com.briup.cms.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket demoApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.briup.cms.web"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("看点咨询接口文档")
.description("Thanks for jd1914!")
.termsOfServiceUrl("http://www.xxx.com")
.version("1.0")
.build();
}
}
2.2.3 重新启动项目
- 访问如下网址:
- http://localhost:9999/swagger-ui.html
- 如下图:
二、链接管理模块
1、需求图
(1)展示所有链接
(2)根据id删除链接/修改链接
(3)添加链接
2、实现功能
2.1 数据库建表语句
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for cms_article
-- ----------------------------
DROP TABLE IF EXISTS `cms_article`;
CREATE TABLE `cms_article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`author` varchar(255) DEFAULT NULL,
`clickTimes`