根据用户id查询未读消息
<h5>简要描述</h5>
<ul>
<li>根据用户id查询未读消息</li>
</ul>
<h5>请求URL</h5>
<ul>
<li><code>http://ip:port/user/getUnreadMsg</code></li>
</ul>
<h5>请求方式</h5>
<ul>
<li>GET </li>
</ul>
<h5>参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">userId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>用户id</td>
</tr>
</tbody>
</table>
<h5>返回示例</h5>
<pre><code> {
"status": 0,
"errmsgfilter": false,
"encrypted": false,
"desc": "成功",
"result": [
{
"id": "04293549-1745-46f2-8dc6-6b5d7b5f0ac6",
"content": "第二点是,如果总是把语言功能限制在一些有限的、更安全的范围内,或者用一些自定义的东西取代核心功能(例如 malloc 或编译器)。这就把你能使用的库限制在那些使用功能集的库上,并要求你无限期地维护这些核心功能。即便如此,你也不会得到 \"真正的 \"安全,因为这取决于每个人都很小心、不使用错误的功能、编译器,而你又非常确定你的核心实现本身是安全的。 ———————————————— 版权声明:本文为CSDN博主「CSDN资讯」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/csdnnews/article/details/127860766",
"msgType": "日常维护",
"releaseTime": "2022-11-16 16:49:44"
},
{
"id": "045e4ea7-1d70-4c56-8229-cc7fe6d66b14",
"content": "但挑战是双重的。首先,如果在编译器强制执行内存安全,范围也只能局限在编译器上。然而,真正的内存安全实际上是(至少)线程安全、空值安全和类型安全,以及大多数人所想的原始边界检查等各个方面。除非你打算进入托管语言领域(Managed Language)并引入 GC,否则你需要语言级别的结构来允许程序员在这些新的边界内有效工作。例如,在 Rust 中,这就是 \"所有权 \"系统。 ———————————————— 版权声明:本文为CSDN博主「CSDN资讯」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/csdnnews/article/details/127860766",
"msgType": "日常维护",
"releaseTime": "2022-11-16 15:55:05"
}
]
}</code></pre>
<h5>返回参数说明</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">content</td>
<td style="text-align: left;">String</td>
<td>消息内容</td>
</tr>
<tr>
<td style="text-align: left;">msgType</td>
<td style="text-align: left;">String</td>
<td>消息类型</td>
</tr>
<tr>
<td style="text-align: left;">releaseTime</td>
<td style="text-align: left;">String</td>
<td>发送时间</td>
</tr>
</tbody>
</table>