zoukankan      html  css  js  c++  java
  • Flask框架搭建REST-API服务

    一、目的

    为了能够将测试工具部署成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可以设置有效期

  • 相关阅读:
    修改ssh默认端口
    网络配置
    nginx 反向代理
    nginx web 服务
    小白日记22:kali渗透测试之提权(二)--抓包嗅探
    小白日记21:kali渗透测试之提权(一)--本地提权
    小白日记20:kali渗透测试之后渗透测试阶段(一)--上传工具
    小白日记19:kali渗透测试之选择和修改EXP
    小白日记18:kali渗透测试之缓冲区溢出实例(二)--Linux,穿越火线1.9.0
    小白日记17:kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail
  • 原文地址:https://www.cnblogs.com/1fengchen1/p/10209981.html
Copyright © 2011-2022 走看看