第三章. API 设计的第一次探险
RESTful 架构遵循着一套代理可以通过交换资源通信的原则.
这套通用规则为应用程序交换数据流和为有助于构建一个web创造了巨大的可能,使得Web更开放和可访问性.
在Web的黑暗时代,经常可以看到网站声明它们首选,支持的最好的浏览器."本站最好使用<浏览器名称和版本>来查看"是页面中最常见的标语.
现在已不是关乎偏好了.每个浏览器都会解析和显示不同HTML代码,同时有些功能并不能像预期的一样工作.尽管我们已经离开了互联网的的中世纪(大部分),web开发者仍继续在为创建跨多设备之间的web应用程序作斗争.
要注意的是Web是为使得与彼此能够更好的交流而发明的,因此,人类和软件代理都可以作用于整个系统的信息共享.然而Web,以及后来的REST,是被设计成在它的体系结构的不同中实现核心原则的简单性和均匀性重复.
应用程序接口
API 是一个一些软件组件之间进行交互的接口.所以,一个 RESTful 接口也是一个对开发者和外部应用暴漏软件系统的内部函数的表述状态传递的接口.现在这些可以通过API自身来对特定的资源消费和交互.
API 并不是新奇的东西,或者说它不仅仅只在 web 世界中开发应用.事实上,一个API是指一套功能能够通过和一些组件交互来完成.这些动作和组件可以是数据库系统需要被web服务访问,或者一张视频卡通过通过软件类库暴漏了它的一些功能.在 REST 架构中,API定义了动作通过交换状态来访问或者修改资源:
________ _________ ________
________________ ___________
App Data _App Interface__ API ____REST___ Client
________ _________ Interface _________
| Data | /entrypoint Client App
| Model| Server /collection REST Library
/resource HTTP Library
/action Transport Protocols
/actions Network Protocols
/collection Physical Link
/resource
/resource
/resource
API 设计过程是由应用数据需要被一个或者一套客户端或者服务端访问此数据上的行为开始的.
API 已经成为软件开发的一个重要方面.通过API对外开放一些功能,能够对用户完全隐藏内部系统的复杂程度和强制分离用户的关注点.
API 正在成为产品开发和企业执行力的基础.