2

我已经在 SO 上的其他地方寻找这个问题的答案,但找不到。

我正在构建一个 MVC Web API,它将在一定程度上启动远程机器上的进程。截至目前,“blah.com/Process”的 POST 会将一些初始化数据保存到数据库并指示 Windows 服务开始对其进行操作。对“blah.com/Process/{Id}”的 GET 请求将检索进程的当前进度。

这两个控制器动作使用两种不同的模型。POST 接受一个包含参数信息的模型,GET(因为它用于报告进度,我不太关心参数)不返回。这是否违反了 RESTful 设计?我应该使用两个不同的 URL,还是违反REST?据我了解,正在传输的数据应该代表流程的当前状态,在我看来,这两种情况都是如此。

编辑:感谢您的回复。我现在对自己的方法感到更加安全。:)

4

3 回答 3

3

根据维基百科

符合 REST 约束通常被称为“RESTful”。如果服务违反了任何必需的约束,则不能严格将其视为 RESTful。

在不涉及复杂细节的情况下,这些约束是:

  • 客户端服务器
  • 无状态
  • 可缓存
  • 分层系统
  • 按需编码(可选)
  • 统一的界面

您的描述中的任何一种情况都没有违反这些原则。做对 API 的使用者最有意义的事情,使整体尽可能简单。

于 2013-02-06T15:21:57.773 回答
1

正如其他人指出的那样,这并不违反 REST。但即使是这样,如果它对你有用,它可能仍然没问题,只要它对你的设计有意义。

于 2013-02-06T17:05:15.990 回答
0

我已经看到 GET 和 POST 方法结合到同一个 URL。这样做是可以接受的,并且不违反 RESTful 设计。

于 2013-02-06T15:18:41.500 回答