慕课网Flask构建可扩展的RESTful API-2. RES
2018-06-16 本文已影响18人
9c0ddf06559c
专题章节目录
慕课网Flask高级编程实战-知识点思维导图
慕课网Flask高级编程实战-1.项目准备 和 Flask入门
慕课网Flask高级编程实战-2.搜索书籍路由编写
慕课网Flask高级编程实战-3.蓝图、模型与CodeFirst
慕课网Flask高级编程实战-4.flask核心机制
慕课网Flask高级编程实战-5.书籍详情页面的构建
慕课网Flask高级编程实战-6.书籍详情页面的构建
慕课网Flask高级编程实战-7.静态文件、模板、消息闪现与Jinja2
慕课网Flask高级编程实战-8.用户登录与注册
慕课网Flask高级编程实战-9.书籍交易模型(数据库事务、重写Flask中的对象)
慕课网Flask高级编程实战-10.鱼书业务处理
慕课网Flask高级编程实战-11.Python与Flask的结合应用
慕课网Flask构建可扩展的RESTful API-1. 起步与红图
慕课网Flask构建可扩展的RESTful API-2. REST基本特征
慕课网Flask构建可扩展的RESTful API-3. 自定义异常对象
慕课网Flask构建可扩展的RESTful API-5. Token与HTTPBasic验证 —— 用令牌来管理用户
慕课网Flask构建可扩展的RESTful API-6. 模型对象的序列化
慕课网Flask构建可扩展的RESTful API-7. 权限控制
2. REST基本特征
1.REST的最基本特征
我们把服务器提供的服务统一称为资源。
我们可以使用URL来定位资源,如/v1/book/user/1 来定位一个用户
定位到资源以后,可以使用HTPP动词来操作资源,类似使用DDL操作数据库。

对于视图函数的URL,尽量不应该包含动词,因为URL是用来定位资源的,例如我们之前的试图函数,应该这样改写
@api.route('', methods=['GET'])
def get_book():
return 'get book'
@api.route('', methods=['POST'])
def create():
return 'create book'
2.为什么标准的REST不适合内部开发
REST的使用场景有两个:内部开发API,开放API。
标准的REST比较适合开放性的API。只负责提供数据,不负责业务逻辑
- 由于内部的开发,业务逻辑非常复杂,想用简单的四个接口来标示所有的业务逻辑,基本上是不可能的
- REST的接口粒度比较粗(返回的资源属性比较多;服务器不会负责处理数据),这样前端的开发是不太方便的
- 标准的REST会造成HTTP请求的数量大幅度的增加
3.建议
- 尽量遵从REST的设计风格规范
- 要灵活一些,如果前端要考虑业务逻辑的话,我们就不要遵从资源的限制了,应该让API具有业务逻辑的性质
- 如果前端需要几个资源合并在一起的数据,那么我们就为前端定制一个合并数据的接口