假设一个场景是产品页,我们设计为:
GET /api/products
查看某个具体某个产品:
GET /api/products/:productid
现在需要一个新增产品页,以输入产品信息发布,那么不就变成了:
GET /api/products/create
但是这个时候就会跟 productid 冲突?
不是这么设计,应该用POST /api/products表示创建一个新的产品,因为这时候产品没有生成,所以没有productId
来自酷炫的 CNodeMD
没,就是获取产品创建页
@leavesdrift 页面url不带/api 接口带api
来自酷炫的 CNodeMD
我设计的 REST 插件 https://github.com/liangtongzhuo/ltz-rest
@leavesdrift 那就是GET /api/products
来自酷炫的 CNodeMD
@unliar 老哥 你是说用URL永远都是一样的,用API_name 吗
@q86002618 产品创建页,不是产品页
@hi363138911 回头看看
@unliar 我这个问题就是后端管理的一个问题,用
if (req.params.productid === 'create'){
//
}
判断是可以的,但是怎么看怎么怪,所以想知道怎么处理这种情况
一个所有产品显示页,还需要一个产品创建页,自然都是 get 方法,但是会跟查看具体某个产品信息有点冲突
读取页面用 /api 开头有点奇怪
path: ‘/hkstocks’, 列表页 path: ‘/hkstocks/post/:id?’, 列表元素修改[有id]以及发布页[无id]
目前我是这样写的 。我有种其实你的问题和reatful没关系的感觉,浏览器输入框上的地址一直是get。 个人愚见
来自酷炫的 CNodeMD
@unliar 我就是想知道这种情况怎么做,还是不清楚,郁闷啊,get也不能忽视呀,其他反而简单
ERSTful 我的理解是,你想要告诉服务器你想要什么, 查资源用get 添加新资源 用post 修改已存在的资源 put 删除一个资源delete
然后你想对那个资源进行操作,需要用url来描述!
整体思路就是,用url明确描述你要对服务器的资源,进行哪种行为操作!
来自酷炫的 CNodeMD
@maosiyu 我觉得可能是这样,我并没有分开,实际上 api 不应该提供 GET /api/products/create 这部分应该是页面去做,页面填写好带着数据请求 POST /api/products,谢谢你的回答!
我是这样做的 页面 /products/create api api/products/create
@leavesdrift 从百科上复制了 原则条件 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。 从客户端到服务器的每个请求都必须包含理解请求所必需的信息。 如果服务器在请求之间的任何时间点重启,客户端不会得到通知。 此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。 客户端可以缓存数据以改进性能。
因此,区分开是有必要的。
来自酷炫的 CNodeMD
dfs
dfafd
假设一个场景是产品页,我们设计为:
如果用的是express路由控制 更换下陆游位置应该就可以了
GET /api/products/create
GET /api/products/:productid
如果是 RESTful,那么 URL 中就不应该出现 create
,包括 delete
、update
之类的「动词」都不应该出现。
所以,楼主提到的三个 API,大体可以这样:
//获取所有产品
GET /api/products
//获取某个产品
GET /api/product/:productid
//新增一个产品
POST /api/product
标准restful api
/**
* Auto generate RESTful url routes.
*
* URL routes:
*
* GET /api/coursess[/] => course.list()
* GET /api/coursess/new => course.new()
* GET /api/coursess/:id => course.show()
* GET /api/coursess/:id/edit => course.edit()
* POST /api/coursess[/] => course.create()
* PATCH /api/coursess/:id => course.update()
* DELETE /api/coursess/:id => course.destroy()
*
*/
@houfeng 对!
@i5ting 谢狼叔总结