到底什么是REST?怎么用通俗的语言解释REST以及RESTful?

本文解释了REST(表现层状态转移)的概念,强调其通过URL定位资源并利用HTTP描述操作的特点,并对比了传统动词指向与REST规范下名词指向的区别。同时介绍了Retrofit作为Android和Java平台类型安全的REST客户端的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习Retrofit的时候,看到Square官方对Retrofit的描述:

“A type-safe REST client for Android and Java“

即:Retrofit是为Android和Java平台的应用提供的一个类型安全的REST客户端。

那么什么是REST呢?

REST – Representational State Transfer 直接翻译:表现层状态转移。

这个中文直译经常出现在很多博客中。尼玛谁听得懂“表现层状态转移”?这是人话吗?

后来终于在知乎上找到了靠谱的解答:

所谓REST就是用URL定位资源,用HTTP描述操作。

追问:关键是 RESTful 之前也一直是 url 来定位资源的啊?!

答:RPC的话很多不是资源,而是操作,例如/DeleteOrder /GetOrder?id=1

还有一个回答下面的评论很有启发性:

不知道网上那么多篇长文讨论这个玩意干什么,把doSth这种动宾短语格式的action请求用sth这种名词来代替,意思是我们是访问的是网络上的某处资源。。。然后用http的四种method来偷偷摸摸的表达增删改查

URI使用名词而不是动词,且推荐用复数。

BAD

● /getProducts
● /listOrders
● /retrieveClientByOrder?orderId=1

GOOD

● GET /products : will return the list of all products
● POST /products : will add a product to the collection
● GET /products/4 : will retrieve product #4
● PATCH/PUT /products/4 : will update profduct #4

好了,看到这里,总算对REST有了一个比较具体的认识,说白了就是资源的定位方式,从以前的动词指向到现在的名词指向:

例如以前的写法:/getOrder?id=1
REST的写法就是: /orders/1

这样有什么好处,可能搞web的会比较清楚。REST不是一种强制的协议,而是一种规范,而RESTful就是采用了这种规范的编程了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值