23.5 创建RESTful规范 WebAPI框架
虽然我们现在可以自己实现API了,也了解了RESTful API的设计原则,但让自己实现的API符合RESTful API规范,对很多刚接触API的读者还是有一定难度的。本节按前文介绍的API实现过程,以及RESTful API的规范,创建一个轻量级的WebAPI框架。本节的示例的重点在程序结构的设计,并没有实现全部的细节,目的是让读者能了解RESTful API的实现过程,如果程序在商业项目中应用,可以使用目前的一些开源WebAPI框架,如DingGO等的应用非常方便,功能也非常齐全。
23.5.1 程序结构设计
程序的结构设计一定要按用户的使用需求实现,以23.4节中RESTful规范作为实际的开发需求,在RESTful中最核心的规范就是,用户通过不同的请求方法,如get、post、put和delete等,请求同一个API的URL资源,可以定位到不同的服务器方法中处理资源。这就需要我们在设计API时,一定要有统一的访问入口作为中央调度器,把所有的URL请求都导入这个文件。再根据用户不同的请求方法判断,通过自定义路由规则的设置,使用路由调用对应控制器中的方法来处理业务。自定义API框架应用结构如图23-11所示。
图23-11 自定义API框架应用结构
如图23-11所示,将程序分为展现层、服务层和数据访问这3层结构。当然,也可以将程序结构分为前端应用和后端服务两层,或者将每层结构再向下细分多层。分层架构设计是构建大型分布式系统的必要手段,因为可以使系统健壮和可扩展。每层的作用说明如下。
Ø 展现层
我们可以在桌面、Web、平板、手机或物联设备中,通过App、Web应用程序(PHP、Java、Python等)、浏览器等远程访问统一的API接口,获取核心业务数据并展现给用户。
Ø 服务层
服务层也就是我们的WebAPI, 作为业务逻辑处理服务的核心,能够满足接口访问和接口之间交互的需求。
Ø 数据访问层
数据访问层提供了统一的数据操作模型,用于实现通用的数据访问操作。被模型返回的数据是中立的,也就是说,模型可以与数据格式无关。由于应用于模型的代码只需写一次就可以被多次重复使用,所以减少了代码的重复性。