7.6. 标记通知为已读

标记通知为已读

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

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

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

1. 增加路由

routes/api.php

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

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

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

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 9

hustnzj
「分享」自己写的标记单条消息为已读
6 个点赞 | 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
FakeSPrite
unreadNotifications 是在哪里定义的?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.8
Flourishing
老师,啥叫考虑到幂等性原则?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Kevinvinvin
标记单条 / 全部消息为已读
0 个点赞 | 0 个回复 | 分享 | 课程版本 5.7