You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设计符合REST规范的接口查询用户是否被另一用户拉黑

你的接口设计评估

可行性判断

  • 你当前的设计完全可以正常跑通,是可行的。
  • 整体符合REST规范的核心要求:GET请求语义正确(仅做查询、无副作用),资源路径/members/{userId}/blocks合理对应了用户的拉黑关系集合资源,返回结构简洁明了,完全能满足业务需求。

优化建议(更贴合REST设计规范)

你可以做小调整让接口语义更清晰,扩展性更好:

REST规范推荐用路径唯一标识单个资源,查询参数多用于过滤、分页等集合查询场景

  • 你当前的需求是查询两个用户之间的特定拉黑关系,而非查询用户1的所有拉黑记录,所以可以把被查询的用户ID放到路径中,改成 GET /members/1/blocks/2,路径本身就直接对应「ID为2的用户对ID为1的用户的拉黑关系」这个独立资源,不需要额外传查询参数,语义更明确。
  • 保留原来的不带参数的GET /members/1/blocks接口,后续可以直接用来返回用户1的所有拉黑/被拉黑列表,不需要额外改设计,扩展性更强。
  • 务必做好权限校验:仅允许当前登录的用户查询自己相关的拉黑状态,避免越权查询其他用户的隐私数据。

额外说明

如果后续你需要同时返回双向拉黑状态(比如同时返回「用户2是否拉黑用户1」「用户1是否拉黑用户2」),可以把返回结构调整为:

{
    "youAreBlocked": true,
    "youBlockedThem": false
}

完全不需要调整接口路径,兼容性很好。


内容的提问来源于stack exchange,提问作者Roger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:54:02