Menu

7.6. 标记通知为已读

标记通知为已读

我们还没有标记通知数据为已读,有些同学可能会在 消息通知列表 接口中将所有未读消息标记为已读,只要调用了列表接口,就意味着消息已读。
这么做看似没有什么问题,但是违背了一些原则,也带来了一些问题。回忆一下 Github 的 Restful HTTP API 设计分解 这一节我们提到了 GET 是安全的请求。

另外需要注意的是,GET 请求是安全的,不允许通过 GET 请求改变(更新或创建)资源。

消息通知列表 接口是 GET 请求,不应该在这时候改变资源数据,而且客户端可能会有其他的方式标记已读,例如有个按钮 标记所有通知为已读。我们需要让接口符合规范,而且更加通用,所以一般需要客户端主动调用接口,来标记消息已读。

1. 增加路由

routes/api.php

.
.
.
// 通知统计
$api->get('user/notifications/stats', 'NotificationsController@stats')
    ->name(...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 8

hustnzj
「分享」自己写的标记单条消息为已读
5 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
lianglunzhong
如何修改单条通知为已读?
2 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
eeeee
同上个问题,如何实现单条通知读取?
1 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Flourishing
自己对 put 和 patch 的疑惑.
0 个点赞 | 14 个回复 | 问答 | 课程版本 5.5
gyp719
通知消息是根据什么来判断 消息 已读、未读的?
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
wanger
路由写成 user/notifications/read 是不是更贴切
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
Flourishing
老师,啥叫考虑到幂等性原则?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Kevinvinvin
标记单条 / 全部消息为已读
0 个点赞 | 0 个回复 | 分享 | 课程版本 5.7
刻意练习,每日精进。
0
点赞
1181
浏览
8
讨论