给定这样的URL结构:
GET /user/giftcards/:id
使用我的所有礼品卡返回列表时:
GET /user/giftcards
这里有我的问题,如果我还想要返回礼品卡的子部分,如收到或发送的内容,那么URL结构的最佳做法是什么?
今天我这样做(但我知道它错了,因为URL应该代表名词/资源(这里:giftcard)
GET /user/giftcardsreceived
GET /user/giftcardssent
我看到它的方式有两个"更好"解决方案:
GET /user/giftcards/received
GET /user/giftcards/sent
或
GET /user/giftcards?filter=received
GET /user/giftcards?filter=sent
我倾向于使用过滤的请求参数解决方案,因为其他解决方案可能会与基于id的GET冲突。
任何指向正确方向的人都会赞赏。
答案 0 :(得分:2)
由于这对应于元素的子列表,因此应由处理此类元素列表的相同资源提供服务。因此,在我看来,使用查询参数会更好。
以下链接可为您提供其他提示:
希望它可以帮到你, 亨利
答案 1 :(得分:1)
我个人更喜欢查询参数样式,因为状态通常是资源的属性,而不是全新的资源本身。
查看Brian Mulloy关于api design的演讲。它可以像任何
一样开始