公告页面设计

开篇语:好久没发文了,因为手头上有紧急的任务还有出差,属实是没有精力写文了,今天刚把任务大致写完,准备写设计文档了,这不是马不停蹄来写文了,记录和总结一下我这段时间的学习。

1、项目背景

项目背景,当然是老板需求啊,哈哈哈,所以需要实现。需求如下,我刚拿到这个需求的时候,我都懵逼了,孩子真的不会写 ,我实诚的告诉老板我不会,老板说你可以的,就是写API接口,试试,然后我就开始我漫长的探索。

公告页面

消息中心页面

2、菜鸡的思考逻辑

我连啥是API,我都不知道,不知者无罪,所以请出我的好朋友百度,百度带我了解世界,说啥也不能没有百度。看完下面的图,我对api有一个大致的了解,大概就是前后端交互的媒介。前端把数据给后端,后端把数据给前端,都依靠它。 可是到这,我还是对那个需求没有任何的想法,哪怕是违法的都没有,然后我就开始我百度生活,试图在网上找到关于这一块代码,我在大大的网络世界里面,挖啊挖,不是付费就是对我没啥用。终究还是穷。使得我不得努力思考。不得已之下,我又找到老板,说我不会,老板说你要记住,你是一个后端,你的第一任务就是处理数据,处理数据就是要学数据库,你先熟悉一下数据库 吧。 我这里花费了2天时间学了数据库。就明白了一个道理增删改查 ,真是贯穿数据库。这里推荐一个博主写的数据库,我感觉写的挺好的。我刚学的时候,他的文章给了我很多帮助。(侵权,会删的哈

数据库的基础概念和代码例子(增删改查和其他操作-约束)_数据库代码示例-CSDN博客

带着半吊子的数据库和git,我又开始我的征途。我开始写我的代码,到目前,我可是一个代码没写。我又求教大佬,大佬说你需要先设计你数据库的表啊,表里需要存储什么内容,是你要考虑。好了,接下来我开始针对需求,来设计我的数据库表

2.1数据库表的设计

如下图是数据库表名的创建语句,只需要把相对应的替换成你需要创建的名字 根据我的需求,我需要创建一个公告表 ,我的表名叫notices ,其中包含(id、name、description、title、summary、context、publisher、status、publish_time、created_at、updated_at、deleted_at)有人看到这里可能会疑惑为啥没有接收人 ,这个是把接收人单独整了个表(为啥单独整表,是与我的业务逻辑有关,我还需要写一个消息中心的页面,消息中心有一个权限控制。)

创建数据库的表还需要了解一下数据库的数据类型,这里推荐一个博主写的,写的很细。www.cnblogs.com/zhangruiyua...

sql 复制代码
CREATE TABLE notices (
	id SERIAL PRIMARY KEY, 
	sort INTEGER,
	name VARCHAR,  --主要存储用户名
	description VARCHAR,     --描述
  title VARCHAR(255) NOT NULL,  --标题
	recipient INTEGER,
	publisher VARCHAR(255) NOT NULL,--用于存储公告发布人的信息
	status INTEGER DEFAULT 0,,--用于存储公告的发布状态
	notice_id INTEGER,        -- nested notices          
	publish_time  TIMESTAMP(0) DEFAULT now(), --发布时间 
	summary VARCHAR(255) NOT NULL,--摘要
	context VARCHAR(255) NOT NULL,--内容

	created_at TIMESTAMP(0) DEFAULT now(),
	updated_at TIMESTAMP(0) DEFAULT now(),                                             
	deleted_at TIMESTAMP(0)
);

现在我的表就建好了,我的表一直跟着我逻辑变化,或者新的需求一直增加更改,这是目前的一个表,给大家做参考,表建好了,就是往里面存储数据和调数据,这是最简单的操作,也就是我们说的增删改查 。 这里插入一个调试工具postman ,这会是我们忠诚的小伙伴,一直帮我们调试代码,他就是一个模拟前端。比如前端给了一串数据给我们,我们可以通过postman给我到后端,如果后端要反馈数据给前端,我们也可以用postman调一下,看看数据如何。 如下是我的postman的页面

2.1.1创建postman里面的GET API

如下图,api类型还是挺多的,可以进行选择你需要的类型,假使我们使用的是GET,后面http://你电脑的ip/api/你写代码的那个文件名 假如我的ip是192.168.1.101,那后面就填http://192.168.1.101:8081/api/notices (notices是我写代码的文件名)

2.1.2创建postman里面的POST API

如下图,是我的POST API界面,图中标红的地方是我们需要注意的,因为前端传给我的是json ,所以我这里的数据格式选择json ,然后{}里面填的是前端需要传的数据(这里可以和前端协商一下,方便干活,哈哈哈。)

2.1.3创建postman里面的PUT API

PUT API和POST API差不多,只是API的类型不一样。

2.1.4创建postman里面的DELETE API

图中标红色的是填数据在表里的id

2.2数据的增删改查

2.2.1 公告GET API/DELETE API 设计思路

因为我还是挺菜的,我当时写不出来POST API代码来,旁边大哥就建议既然你写不出来创建公告的代码,换个思路,可以试着写个简单的GET接口,它只是从数据库的表里调取东西,哪怕就是一个很小的数值,都算你是成功的。被大哥一鼓励,我又感觉我行了。我写的第一个接口就是GET接口。如下,图中红色框放的是你的表名 (因为第一次写这种文章,怕泄露公司的东西,但是又想记录自己的学习过程,所以请谅解,哈哈哈),然后经过我的努力,我已经把它的GET API接口写出来了,这里用postman调了一下,里面没有数据,想来也正常,确实没有数据,我都没插入数据。

首先恭喜小何,能成功调出来里面的数据,我的下一步就是往里面插数据。代码我现在是写不出来,我可以插入假数据啊,思路打开了,只要有数据。我就能检测我写的GET API接口对不对,前端调我的接口就能看到东西了。 手动往里面插入数据,用postman调,成功返回数值,给到了前端,也是没啥问题。会写GET了,DELETE还远吗?我也是很顺利的会写了。但是道阻且长啊,前路漫漫的,姑且让我高兴一波,下个小目标就是POST和PUT API。

2.2.2 公告 POST API/PUT API 设计思路

首先你需要和前端协商一下,他需要传给你的数据格式,拿我这里的公告做例子。一个完整的公告具备什么,思考一下,我需要存储公告的标题、公告的发送人、公告的接收人,公告发送的时间。这是最简单的。作为一个后端,也要时刻明白,你只接收数据,处理数据,然后存储数据就够了,剩下与你无瓜,你也不要管前端咋传给你的。

graph TD 前端传递数据 --> 后端接收数据 后端接收数据 -->进行数据处理 进行数据处理 -->存储进数据库的表里

修改的API和创建的API有异曲同工之处。就是前端需要多给你传递一个id,比如你要修改公告id=3的公告内容,前端得传给你,就是他起码得告诉你,他想修改哪个公告内容,修改后,成功反馈一个信息给前端,告诉他已经修改成功。

菜鸡的进阶

至此,我就算把所有东西都整明白了,就和前端慢慢对,根据需求慢慢改我的代码就好了,目前我也是写出来这两个页面了。这里开心一下。这里面还有很多细枝末节的,很难说,这一说,都不只这点字了,发个文纪念一下我这段时间的成功,也欢迎不会的小伙伴和我交流,(实在不就想写了,具体的代码逻辑那一块不是一句两句可以说清楚的)哈哈哈哈。

相关推荐
千叶寻-44 分钟前
正则表达式
前端·javascript·后端·架构·正则表达式·node.js
小咕聊编程2 小时前
【含文档+源码】基于SpringBoot的过滤协同算法之网上服装商城设计与实现
java·spring boot·后端
追逐时光者8 小时前
推荐 12 款开源美观、简单易用的 WPF UI 控件库,让 WPF 应用界面焕然一新!
后端·.net
Jagger_8 小时前
敏捷开发流程-精简版
前端·后端
苏打水com9 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
间彧10 小时前
Spring Cloud Gateway与Kong或Nginx等API网关相比有哪些优劣势?
后端
间彧10 小时前
如何基于Spring Cloud Gateway实现灰度发布的具体配置示例?
后端
间彧10 小时前
在实际项目中如何设计一个高可用的Spring Cloud Gateway集群?
后端
间彧10 小时前
如何为Spring Cloud Gateway配置具体的负载均衡策略?
后端
间彧10 小时前
Spring Cloud Gateway详解与应用实战
后端