【发布时间】:2012-04-25 10:38:12
【问题描述】:
在大多数关于 RESTful 的教程、文档、文章等中,我遇到了一些相同的观点,但我很少看到这些“是什么让 RESTful 实现”的观点。
例如,我读过很多遍:
-
内容类型
使用 HTTP 标头
Accept: application/json, text/plain网址中的扩展名
Not RESTful, URLs are not the place for Content-Type
我从未遇到过实现此功能的 API。我曾经使用过的每个 API 都要求我将 XML 或 JSON 附加到 URL 的末尾。他们做错了吗?
-
版本控制
版本媒体类型
应用程序/vnd.something.v1+json
自定义标题
X-API-版本:1
网址中的版本
/v1/资源 不是 RESTful,通过将版本放在您创建单独资源的 URL 中
如果您需要引入非向后兼容的功能,确定创建单独的资源是正确的做法吗?
再一次,在我使用过的所有 API 版本中,它们在 URL 中使用 v1、v2(例如 google、imgur 等)
如果不实现这些点,我的 API 会不会被视为 RESTful?
非常感谢澄清这些观点。
【问题讨论】:
-
小心假设现有的将自己标记为“RESTful”的 API 确实是 RESTful。我发现了解什么是 REST 的最简单来源是 Rest in Practice 书。遗憾的是,REST 一词已被用来描述任何通过 HTTP 实现的 API。
标签: api rest restful-architecture