亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通知 API 系統正確流程

通知 API 系統正確流程

PHP
至尊寶的傳說 2023-04-21 16:45:54
我構建了一個小型通知 api 系統,該系統在數據庫中包含id, user_id, subject, text, status,列。created_at我目前的流程是,當用戶請求她的通知時,我會收到最近的 100 條未讀消息并發送給用戶,然后等待前端向我發送ids用戶已閱讀的列表,以便我可以將他們的狀態更改為read。但有時這不會發生,這意味著當用戶請求另一組消息時,他們將取回已讀過的消息。因此,我正在考慮在為用戶檢索消息后將消息標記為已讀,而不是等待來自前端的更新。但我不確定這是否是處理此問題的最佳方法!api通知系統是否有更好的流程請告訴我。謝謝。
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

我會這樣想:未讀項目列表描述的是什么?國家了解的內容未被閱讀。提取未讀項目列表真的意味著所有這些項目都已閱讀嗎?我想不是。您可能允許批量標記讀取,但實際上讀取列表只是一種狀態表示。閱讀列表,并通過向thing/mark-read.

如果您認為(中央)存儲不能準確地表示狀態,因為您認為它們應該被讀取,那么請調試您的界面。不過,我不會在拉出列表時標記為已讀。那將是一個有缺陷的方法。

如果您確實將所有 100 個直接插入到您認為它們已讀取的顯示中,請在您的 api 中創建一個端點并將thing/mark-items-read這 100 個項目 ID 傳遞給它。


查看完整回答
反對 回復 2023-04-21
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

我們在這里看不到您的代碼,但我建議如下:


將顯示給使用的消息的 ID 存儲在前端的數組中,因此當用戶查看消息時,您將 id 添加到該數組。我不確定您的前端正在使用什么,因此無法真正提出代碼建議。


在路由文件的后端創建一個接收此數組的端點


Route::post('somepath/read-messages', 'MessageController@readMessages');

然后,在您的消息控制器中:


public function readMessages(Request $request) {


   if ($request->has('read_messages') {

       $messages = Message::whereIn('id', $request->read_messages)->get();

       $messages->update(array('staus' => 'read');

   }


}


查看完整回答
反對 回復 2023-04-21
  • 2 回答
  • 0 關注
  • 114 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號