Flask框架搭建REST-API服务

2019-01-03 09:57:37来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、目的

为了能够将测试工具部署成RESTful-API服务,这样就能通过接口的方式提供统一测试工具服务,使用人员就不用构建application而产生的各种环境问题、使用问题。

适合人群:Python开发、Flask框架使用、REST风格web架构

 

二、介绍

FlaskPython web开发轻量框架,自由添加需要的扩展(Django于此相反)

Flask核心特性:

  •  轻量级,提供插件接口
  •  封装了request对象
  •  拥有蓝图功能
  •  flash,在C端警告提示用户
  •  模板支持宏

 

REST特点(约束[constraint])

  •  客户端-服务端 Client-Server    CS
  •  无状态 Stateless    S
  •  缓存 Cache    $
  •  统一接口 Uniform-interface   U
  •  系统分层 Layered    L
  •  按需代码  Code on Demand   COD

REST核心概念:资源就是一切

REST架构API中使用的HTTP请求方法:

  •  GET      获取目标资源
  •  POST    创建新资源
  •  PUT       修改资源
  •  DELETE 删除资源

REST中资源的格式:json(首推)xml

REST中版本管理方式:在URL加入版本号

 

三、REST-API of Flask

1,怎么将REST-API做成application的独立子集?

答:使用Flask的蓝图功能。

 

2404500状态码,是由FLask自己生成的,而且是返回HTML响应,如何让其返回json响应?

答:使用内容协商技术。(在错误处理程序中根据客户端请求的格式改写response.

 

3,怎么认证用户,未经授权的用户,不能访问API

答:因为REST是基于HTTP协议,所以发送密令最佳方式使用HTTP认证,用户密令包含在请求的Authorization首部中。FLask-HTTPAuth扩展,可以把协议的细节隐藏在修饰器中,因为认证只是在API蓝图中使用,所以初始化也在蓝图中。登录名和密码使用User模型中的方法验证。登录密令正确就返回True,失败就False,通过的认证的用户保存在FLask的全局对象g中,这样view函数就能访问。

 

4API是需要认证才能访问,使用什么技术可以保护所有API

答:使用Flask装饰器钩子before_requestFLask-HTTPAuth扩展的login_required装饰器,来对处理函数做修饰,这样API蓝图只用的所有API都会进行自动认证。在处理函数中拒绝已通过认证但没有确认账户的有用户

 

5,怎么对用户访问API限制时间,过期不能访问API

答:itsdangerous库的TimedJSONWebSignatureSerializer生成tokentoken可以设置有效期

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python迭代器

下一篇:python之MRO和C3算法