You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**资源(Resource)**:我们可以把真实的对象数据称为资源。一个资源既可以是一个集合,也可以是单个个体。比如我们的班级 classes 是代表一个集合形式的资源,而特定的 class 代表单个个体资源。每一种资源都有特定的 URI(统一资源标识符)与之对应,如果我们需要获取这个资源,访问这个 URI 就可以了,比如获取特定的班级:`/class/12`。另外,资源也可以包含子资源,比如 `/classes/classId/teachers`:列出某个指定班级的所有老师的信息
58
+
-**资源(Resource)**:我们可以把真实的对象数据称为资源。一个资源既可以是一个集合,也可以是单个个体。比如我们的班级 classes 是代表一个集合形式的资源,而特定的 class 代表单个个体资源。每一种资源都有特定的 URI(统一资源标识符)与之对应,如果我们需要获取这个资源,访问这个 URI 就可以了,比如获取特定的班级:`/classes/12`。另外,资源也可以包含子资源,比如 `/classes/{classId}/teachers`:列出某个指定班级的所有老师的信息
上面代码表示,文档中有一个 `link` 属性,用户读取这个属性就知道下一步该调用什么 API 了。`rel`表示这个 API 与当前网址的关系(collection 关系,并给出该 collection 的网址),`href`表示 API 的路径,title 表示 API 的标题,`type`表示返回类型`Hypermedia API`的设计被称为[HATEOAS](http://en.wikipedia.org/wiki/HATEOAS)。
158
+
上面代码表示,文档中有一个 `link` 属性,用户读取这个属性就知道下一步该调用什么 API 了。`rel`表示目标资源与当前上下文的关系,`href`表示目标资源的路径,`title` 表示链接的标题,`type`是目标资源表现形式的媒体类型提示。这样的`Hypermedia API`设计被称为[HATEOAS](https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven)。
157
159
158
160
在 Spring 中有一个叫做 HATEOAS 的 API 库,通过它我们可以更轻松的创建出符合 HATEOAS 设计的 API。相关文章:
159
161
@@ -165,6 +167,14 @@ GET /classes?page=1&size=10 //指定第1页,每页10个数据
165
167
166
168
## 参考
167
169
170
+
-[Fielding 论文:Representational State Transfer](https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)
0 commit comments