Ruby on Rails RESTful 网址设计

REST 是 Representational State Transfer 的缩写,中⽂翻译成「具象状态传输」,
它是由 Roy Thomas Fielding 博⼠在 2000 年时提出的软件架构。简单的说,就是把
每个网址当做资源(Resource)来看待,对同⼀个资源做不同的动作(HTTP
Verb)会得到不同的结果。符合 REST 概念设计的网址,⼜称之 RESTFul Route。
有什麽好处?
假设某网站的会员系统「编辑会员个⼈资料」功能的网址是:
http://kaochenlong.com/member_edit.php?id=2
在换了不同开发⼈员接⼿後,可能会变这样:
http://kaochenlong.com/edit_member.php?id=2
网址(或档名)的设计如果没有统⼀的规则,有的⽤ member_edit.php ,有的⽤
edit_member.php ,对後⾯接⼿的开发者来说就会不知道哪个档案才是正在使⽤
的版本,甚⾄可能得⽤最後修改⽇期去猜。
但如果是在 Rails 的话比较没这困扰,如果 member 当做「资源」的话,那「编辑
会员个⼈资料」的网址⼤概会长这样:
http://kaochenlong.com/members/2/edit
如果想要看这位会员的资料则是:
11 Routes
150
http://kaochenlong.com/members/2
同理,如果把「会员」换成「商品」:

检视 2 号商品

http://kaochenlong.com/products/2

编辑 2 号商品

http://kaochenlong.com/products/2/edit
依此类推。
导入 REST 的设计,可让网址变得更直观,⽽且也帮开发⼈员订了⼀套网址设计的
惯例。当你对某个网址使⽤ POST ⽅法存取表⽰是新增资料;当使⽤ PUT 或
PATCH ⽅法表⽰是更新资料,使⽤ DELETE ⽅法则是表⽰删除资料。不管是老⿃
或是新⼿,⼤多都会遵照这个惯例来设计。再加上 Rails 专案本⾝的结构跟其它的惯
例,只要不要⽤太奇怪的写法,专案不论⼤⼩都应该很快的可以猜出来哪个⾴⾯是
放在哪个档案里。

参考资料

[为你自己学Ruby on Rails]https://railsbook.tw/chapters/08-ruby-basic-4.html


<<:  Kotlin Android 第9天,从 0 到 ML - 介面与抽象类别 / 泛型 / 扩充

>>:  Android学习笔记05

创建App-Google sign in my App

创建App-Google sign in my App 本App设想登入方法有Google、Appl...

D23 - 如何用 Apps Script 自动化地创造与客制 Google Slides?(四)一次抓出所有简报中的「特定文字」与备注

今天的目标: 要怎麽快速搜集在 Slides 中出现的特定文字,并在 Sheet 上标示其出现的页码...

Ruby基本介绍(八)Rspec幼稚园等级实作

DDU-DU DDU-DU~ 十几亿的观看次数...跟四十多亿次的某只MV还有一段距离XD 预防针:...

Debian 执行alien转换rpm报错解决

在debian下使用alien转换MegaRAID Storage Manager的RPM到deb过...

[Day2] 断词介绍

一. 为何需要断词 最主要的原因就是中文的最小一个单位就是一个词,通常不能直接喂一个句子给你的语言模...