【问题标题】:Doubts on the correctness of Microsoft Azure Multimedia Services REST API微软 Azure 多媒体服务 REST API 正确性存疑
【发布时间】:2025-12-28 22:45:11
【问题描述】:

The Azure API claims to be a REST API。我在 REST 中的模式和示例实现和动词时发现了它,当检查它in their (supposedly) REST API reference 时,他们似乎发明了一个新动词 CancelJob 并通过 HTTP GET 改变内部状态

GET
https://media.windows.net/API/CancelJob?jobid='URL-encodedvalue'

这似乎与最佳实践相矛盾,是否应该使用 Jobs 资源和 DELETE 来实现,还是这样做也是正确的?

DELETE
/API/Jobs?jobid='URL-encodedvalue'

甚至?

DELETE
/API/Jobs/jobid

【问题讨论】:

  • 是什么让你觉得这个服务有实现 REST 架构的意图?
  • 哈,页面链接的标题是“REST API Functions”。
  • @JohnSaunders 是的,因为页面的标题如此明确。此外,左侧的子树称为:Azure 媒体服务 REST API 参考
  • @RaulNoheaGoodness:现在每个阅读此问题的人都会知道该 API 声称是 REST API,并且不需要问同样的问题。 OP 应该编辑问题以包含 API 的名称,这将是确保未来读者不需要问我提出的问题的更好方法。
  • @JohnSaunders 绝对同意,ArielM 请编辑您的问题。

标签: rest http azure httpverbs


【解决方案1】:

REST 已成为人们用于任何通过 HTTP 工作的 API 的流行词。这个 API 似乎是某些人所说的 REST 级别 1。级别 1 意味着您仅使用 HTTP 作为传输机制。它不尊重 HTTP 设计的任何 REST 约束。我认为将这些 API 称为 REST 根本不公平,但许多人仍然这样做,因为 REST 很流行,而且业务/营销人员可以说他们拥有 REST API。我怀疑这个 API 就是这种情况,因为这个 API 的架构师显然没有为遵循 REST 原则付出任何努力。

【讨论】:

  • 谢谢,一家大公司做出这样的声明是令人困惑的。正如我提到的,我在寻找一些示例 REST 实现时发现了它。这消除了这些疑虑。