REST是一种架构设计风格,提供了设计原则和约束条件。
满足这些约束条件和原则的应用程序或设计就是RESTful架构或服务。
REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)
Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。比如:
api.qc.com/v1/friends: 某人的好友列表;
用HTTP协议里的动词来实现资源的添加,修改,删除等操作:
GET 用来获取资源,
POST 用来新建资源(也可以用于更新资源),
PUT 用来更新资源,
DELETE 用来删除资源。比如:
DELETE http://api.qc.com/v1/friends: 删除某人的好友 (在http parameter指定好友id)
POST http://api.qc.com/v1/friends: 添加好友
知乎上有人概括地很精辟:
URL定位资源,用HTTP动词描述操作。
RPC
什么是RPC?
RPC(Remote Procedure Call)是指远程过程调用。
RPC在微服务项目中扮演着至关重要的角色。它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。
现在业界有很多开源的优秀RPC框架,例如Spring Cloud、Dubbo等。
RPC的主要功能是让构建分布式应用更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。
为实现该目标,RPC框架需提供一种透明调用机制,让使用者不必显式的区分本地调用和远程调用。