【发布时间】:2014-02-14 17:49:11
【问题描述】:
假设我有和订购资源。为了获得我想要的资源,我会这样做:
GET /orders/{someId}
问题是当有不同类型的获取时我该怎么办。例如,一个 GET 来编辑订单或一个 GET 来审查订单。通常情况下,您只需对两者都使用orders/{someId},但在这种情况下,我需要为每一个都做一些不同的业务逻辑(一些审计)。
也许我可以这样做:
GET /orders/{someId}?type=review
但这似乎是错误的。想法?
【问题讨论】:
-
这里似乎有很多好的建议stackoverflow.com/questions/4024271/…
-
为什么看起来不对?我看不出有什么问题。
-
'一个 GET 来编辑订单或一个 GET 来审查订单' 你是什么意思?
GET返回资源的表示,它不会改变它。 -
正确,GET 不会修改订单。 'a GET to edit' 是指获取订单以进行编辑,而不是实际编辑订单。那将是一个 PUT(大部分时间)。
-
@DarrelMiller 我只是想确保它有意义。这似乎是错误的,因为它对我来说更像是一个动词而不是一个名词。就像 flopo 提到“GET /orders/{someId}/action”一样,我认为一切都应该是一个名词,而不是一个动作。但是就像您评论的那样,审查和编辑可以视为资源,这不是一个动作。如果您想取消订单,您会怎么做。我的第一个想法是 PUT /orders/{id}/cancelRequest?
标签: rest restful-url restful-architecture