ASP.NET Rest API约定子资源发布参数

时间:2014-01-13 13:49:22

标签: c# rest asp.net-web-api conventions

下午好,

我们在这里有一个关于REST约定的小讨论,说实话我不知道该怎么做。我有以下资源:

  

/预约。

对该网址的发布请求会创建新的预订。到现在为止还挺好。但现在我想为预订添加一个房间。所以我们定义了以下网址:

  

/预订/ {ID} /间

据我所知,这不是纯粹的REST,但它没关系(如果我错了,请纠正我)。如果我想添加一个房间,我创建一个带有3/4参数的帖子请求并将其激活到该URL。问题是预订的ID:

  • 如果我把它放在url中,它实际上是一个查询字符串参数,而不是一个post参数,那么它是否适用于约定?
  • 当我允许它从查询字符串als the body获取它时,我的动作有2个参数:预留ID和包含其他参数的包装器对象。这不符合编码惯例,但看起来不太好..
  • 如果我的请求正文中也有相同的参数,我将其定义了两次。

你们知道其他约定对这个话题的看法吗?我找不到有关它的相关主题。

提前致谢,

BHD

1 个答案:

答案 0 :(得分:0)

实际上'房间'是这里的资源。此外,我不认为房间应该总是在保留。我认为您应该能够独立于预订查询和创建“房间”资源。

当“人”(假设你有一个这样的资源)想要一个“房间”时,预约也是一种行动。所以'人'和'房间'是真正的资源。 “预订”可以视为将“人”映射到“房间”的资源。所以预订需要这些人和房间ID。