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可以设置有效期

  • 相关阅读:
    Rust 包管理器 Cargo 入门
    如何设置对企业批量的图文档加密?2021企业首选公司文档加密方案,宁波风奥金甲数据防泄漏
    跟坚哥学QUIC系列:加密和传输握手
    如何在SQLServer中处理每天四亿三千万记录的
    高德最佳实践:Serverless 规模化落地有哪些价值?
    浅谈 Pull Request 与 Change Request 研发协作模式
    Dbeaver连接国产数据库人大金仓
    我对云原生软件架构的观察与思考
    Java Web整合开发(20) -- Hibernate入门
    2 修改与恢复
  • 原文地址:https://www.cnblogs.com/1fengchen1/p/10209981.html
Copyright © 2011-2022 走看看