CNode

请教大家 Egg.js 官方的 RESTful 接口有两个路由方法的作用

问答
AAndy0570发布于7 年前最后回复7 年前2 回复6835 浏览0 收藏

新手初入 Node.js

我在阅读 Egg 的官方文档 Egg.js:RESTful 风格的 URL 定义 这边看到:

只要在 router.js 文件中定义 app.resources('routerName', 'pathMatch', controller) 就会自动在一个路径下自动生成以下的 CRUD 路由结构:

MethodPathRouter NameController.ActionDescription
GET/postspostsapp.controllers.posts.index获取所有资源
GET/posts/newnew_postapp.controllers.posts.new
GET/posts/:idpostapp.controllers.posts.show获取一个指定资源
GET/posts/:id/editedit_postapp.controllers.posts.edit
POST/postspostsapp.controllers.posts.create新建一个资源
PUT/posts/:idpostapp.controllers.posts.update更新一个资源
DELETE/posts/:idpostapp.controllers.posts.destroy删除一个资源

大多数路由方法我能看懂,其中,第 2、4 两个路由方法没看懂,请教大家它的作用。 因为它似乎并不符合常规的 RESTful 描述,让我无法理解。

HTTP 方法路径response 格式
GET/collection返回资源对象的列表(数组)
GET/collection/resource返回单个资源对象
POST/collection返回新生成的资源对象
PUT/collection/resource返回完整的资源对象
PATCH/collection/resource返回完整的资源对象
DELETE/collection/resource返回一个空文档

当然文档后面也有说:

如果我们不需要其中的某几个方法,可以不用在 posts.js 里面实现,这样对应 URL 路径也不会注册到 Router。

查看回复

回复 (2)

L
lellansin#1·7 年前

见名知意:

GET /posts 文章列表页 GET /posts/new 新建一个文章的编辑页 GET /posts/:id 具体 id 的文章页 GET /posts/:id/edit 具体 id 的文章的编辑页

V
VoganWong#2·7 年前

这两个api路由其实有点歧义。 文档上边也写了「RESTful 风格」,但不严格按照RESTful api方式(RESTful 风格也是作为一种参照,按照实际情况可以自行修改)。 在web应用中,确实需要编辑页面、新建页面功能,则需要相应路由。 通常api应用中,是不会出现这两个路由的,因为api不提供页面展示功能。

参与回复
登录后即可参与回复。登录