学成在线 第1天 讲义-项目概述 CMS接口开发 四

本文介绍了CMS项目中选择MongoDB的原因,并提供了MongoDB的安装与入门教程。此外,详细讲解了页面查询接口的定义,包括模型设计、Lombok的使用以及接口的组织结构。内容涵盖分页查询、条件过滤以及接口的Http Get请求响应。
摘要由CSDN通过智能技术生成

4.3 MongoDB入门
4.3.1 安装MongoDB 
CMS采用MongoDB数据库存储CMS页面信息,CMS选用Mongodb的原因如下: 
1Mongodb是非关系型数据库,存储Json格式数据 ,数据格式灵活。 
2、相比课程管理等核心数据CMS数据不重要,且没有事务管理要求。 
参考mongodb
安装.md
安装Mongodb Server及 Studio 3T客户端软件。
4.3.2 MongoDB入门 
参考mongodb安装及入门文档进行学习。
4.4 导入CMS数据库 
导入cms数据库: 
使用Studio 3T软件导入cms数据库 
1、创建xc_cms数据库 

 
2、导入 cms数据库 
右键数据库,点击导入数据库
 

打开窗口,选择第个 json
步,选择要导入的数据文件(json文件)

 
步操作即可完成。
导入成功:

 
页面查询接口定义

5.1 定义模型 
5.1.1 需求分析 
在梳理完用户需求后就要去定义前后端的接口,接口定义后前端和后端就可以依据接口去开发功能了。 
本次定义页面查询接口,本接口供前端请求查询页面列表,支持分页及自定义条件查询方式。 
具体需求如下: 
1、分页查询CmsPage 集合下的数据 
2、根据站点Id、模板Id、页面别名查询页面信息 
3、接口基于Http Get请求,响应Json数据 
5.1.2 模型类介绍 
接口的定义离不开数据模型,根据前边对需求的分析,整个页面管理模块的数据模型如下:
 

CmsSite:站点模型 
CmsTemplate:页面模板 
CmsPage:页面信息 
页面信息如下:

@Data
@ToString
@Document(collection =
"cms_page")
public class CmsPage {
/**
*页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态
*/
//站点ID
private String siteId;
//页面ID
@Id
private String pageId;
//页面名称
private String pageName;
//别名
private String pageAliase;
//访问地址
private String pageWebPath;
//参数
private String pageParameter;
//物理路径
private String pagePhysicalPath;
//类型(静态/动态)
private String pageType;
//页面模版
private String pageTemplate;
//页面静态化内容
private String pageHtml;
//状态
private String pageStatus;
//创建时间
private Date pageCreateTime;
//模版id
private String templateId;
//参数列表,暂不用
private List<CmsPageParam> pageParams;
//模版文件Id
// private String templateFileId;
//静态文件Id
private String htmlFileId;
//数据Url
private String dataUrl;
}

属性说明: 
1、定义
个页面需要指定页面所属站点
个站点包括多个页面,比如:学成在线的门户站点(网站)包括了多个页面。
2、定义
个页面需要指定页面使用的模板
多个页面可以使用相同的模板,比如:商品信息模板,每个商品就是
个页面,所有商品使用同
个商品信息模板
注解说明: 
@Data@ToString@Document注解表示什么意思? 
@Data@ToString:是Lombok提供的注解,下边会介绍。 
@Document:是Spring Data mongodb提供的注解,最终CMS的开发会使用Mongodb数据库。

5.2.3 Lombok 
上边的Data注解表示什么意思呢?Data注解,ToString注解都是Lombok提供的注解。 
Lombok个实用的java工具,使用它可以消除java代码的臃肿,Lombok提供系列的注解,使用这些注解可以不用定义getter/setterequals、构造方法等,它会在编译时在字节码文件自动生成这些通用的方法,简化开发人员的工作。
项目官方地址:https://www.projectlombok.org/
比如上节创建的UserTest模型,@Data注解可以自动生成getter/setter方法,@ToString生成tostring方法。 
使用方法: 
1、在项目中添加Lombok的依赖 
作用:项目在编译时根据Lombok注解生成通用方法。 
 

<dependency>
<groupId>org.
projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

2、在IDEA开发工具中添加Lombok插件 
作用:使用IDEA开发时根据Lombok注解生成通用方法,不报错。
 

 
5.2定义接口 
5.2.1 定义请求及响应类型 
1、定义请求模型QueryPageRequest,此模型作为查询条件类型为后期扩展需求,请求类型统继承RequestData类型

package com.xuecheng
.framework.domain.cms.request;
import com.xuecheng
.framework.model.request.RequestData;
import lombok.Data;
@Data
public class QueryPageRequest extends RequestData {
//站点id
private String siteId;
//页面ID
private String pageId;
//页面名称
private String pageName;
//别名
private String pageAliase;
//模版id
private String templateId;
}

2、响应结果类型,分页查询统使用QueryResponseResult
5.2.2 定义接口

Api接口工程专门定义接口,在Api工程单独定义接口的原因如下: 
1、接口集中管理 
2Api工程的接口将作为各微服务远程调用使用。页面查询接口定义如下:

public interface CmsPageControllerApi {
public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest) ;
}

此接口编写后会在CMS服务工程编写Controller类实现此接口。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值