在周三的测试运维试听课程中,芒果给大家介绍了RESTful架构以及RESTful API开发-Django REST Framework,这里我们来做个小总结。 那么什么又是RESTful架构呢? 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。 通过上面一段描述我们可以知道要符合REST的约束条件和原则,至少要符合以下规则: 每一个URI代表一种资源; 客户端和服务器之间,传递这种资源的某种表现层; 客户端对服务器端资源进行操作,实现"表现层状态转化"。 这里的客户端对服务器的操作要求遵循统一接口原则,统一接口包含了一组受限的预定义的操作,不论什么样的资源,都是通过使用相同的接口进行资源的访问。 接口应该使用标准的HTTP方法,常用GET、POST、PUT、DELETE。 它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。 由于现在前端系统的复杂多样性(手机、平板、桌面电脑、其他专用设备......),导致现在系统需要有一种统一的机制,方便不同的前端设备与后端进行通信。 而 RESTful 可以通过一套统一的接口为 Web,iOS和Android提供服务,不需要有显式的前端,只需要一套提供服务的接口。 作为一套比较成熟的互联网应用程序的API设计理论,RESTful API是目前最流行的API设计方式。 RESTful API开发一般需要重点关注以下几点: URL 设计 动词 + 宾语:RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。动词通常就是刚刚提到的HTTP 方法,对应 CRUD 操作。 宾语必须是名词:宾语就是 API 的 URL,是 HTTP 动词作用的对象。它应该是名词,不能是动词。比如,/articles这个 URL 就是正确的,而下面的 URL 不是名词,所以都是错误的。 复数 URL:尽量使用复数的URL。 动词的覆盖:有些客户端只能使用GET和POST这两种方法。服务器必须接受POST模拟其他方法(比如PUT、DELETE)。这时,客户端发出的 HTTP 请求,要加上X-HTTP-Method-Override属性,告诉服务器应该使用哪一个动词,覆盖POST方法。 避免多级 URL:一般常见操作都是对于一个集合进行,所以为了统一起见,建议都使用复数 URL。 当然除了课程内容除了这些基本的介绍,芒果还给大家介绍了,关于带大家学习 Python 的 web 项目的 RESTful API开发框架 - Django REST Framework。带大家一起实践了一把符合REST架构的API到底是怎么具体实现的 |
|