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

REST API返回非完整资源是否合规?对应端点URI应如何设计?

问题解答

一、REST规范合规性判断

这种返回裁剪后资源的操作完全符合REST规范。
REST规范从未强制要求接口必须返回资源的全量完整表示,资源的「部分表示/投影(Projection)」是被明确允许的设计方式。你当前的需求是保留完整的offer主体字段、仅过滤掉不符合状态要求的子资源(offer item),属于典型的部分表示适用场景,只要接口的返回结构和语义明确告知调用方当前是过滤后的结果,就不存在合规问题。
小提示:可以在返回的offer结构中额外添加filtered_item_status、original_item_total这类辅助字段,避免调用方误将过滤后的item列表当做offer下的全量item。

二、示例Endpoint URI设计

有两种业界通用的设计方案,可根据业务场景选择:

方案1:查询参数实现(推荐,灵活性更高)

适合后续可能需要扩展支持过滤其他offer item状态的场景,符合查询参数用于资源筛选的通用惯例:

  • 获取指定用户下所有仅包含Invalid状态item的offer列表:
    GET /users/{userId}/offers?item_status=invalid
  • 获取指定用户的单个offer的仅含Invalid状态item的表示:
    GET /users/{userId}/offers/{offerId}?item_status=invalid

方案2:路径视图实现

适合该过滤场景是业务上固定的核心高频场景,作为独立的资源视图对外提供:

  • 获取指定用户下所有仅包含Invalid状态item的offer列表:
    GET /users/{userId}/offers/invalid-item-views
  • 获取指定用户的单个offer的仅含Invalid状态item的表示:
    GET /users/{userId}/offers/{offerId}/invalid-item-view

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:45:04