Python+Flask搭建mock api server
Posted ai594ai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python+Flask搭建mock api server相关的知识,希望对你有一定的参考价值。
Python+Flask搭建mock api server
前言:
近期由于工作需要,需要一个Mock Server调用接口直接返回API结果;
假如可以先通过接口文档的定义,自己模拟出服务器返回结果,直接对接口基本功能进行联调测试并编写自动化测试脚本,等服务器上线之后,切换server地址,直接可以简化调试时间,缩短项目测试周期;
准备工作
Python安装
Flask安装:pip install flask
Get 请求
简单的python代码
from flask import abort, jsonify, Flask, request, Response app = Flask(__name__) tasks = { "data": { "loginName": "admin", "roles": 1, "permissions": 1, "active": 1 }, "stateCode": { "code": 0, "desc": "成功" }, "statusText": "成功", "timestamp": "1500531770453", "success": 1 } @app.route("/task", methods=[‘GET‘]) def get_all_task(): return jsonify(tasks) if __name__ == "__main__": if __name__ == "__main__": app.run( host = "127.0.0.1", port = 8989, debug = True )
启动服务:
python test.py (
test.py为上述代码保存文件名)
接口调用测试:
http://127.0.0.1:8989/task
Post请求
Post方式由于需要传递参数,并且有多种不同类型,比如json比如表单等,本文就不细说只是一篇入门;
from flask import abort, jsonify, Flask, request, Response app = Flask(__name__) tasks = { "data": { "loginName": "admin", "roles": 1, "permissions": 1, "active": 1 }, "stateCode": { "code": 0, "desc": "成功" }, "statusText": "成功", "timestamp": "1500531770453", "success": 1 } @app.route(‘/v1/testMock‘, methods=[‘GET‘, ‘POST‘]) def app_call_back(): if request.method == ‘GET‘: return jsonify(tasks) else: test_data = request.form[‘params‘] return jsonify(test_data) if __name__ == "__main__": app.run( host = "127.0.0.1", port = 8989, debug = True )
接口调用测试:
http://127.0.0.1:8989/v1/testMock?params=test_mock
Flask让jsonify返回的json串支持中文显示:
默认Flask调用jsonify返回结果是utf8,如果需要返回支持中文显示,只需要在app = Flask(name)下增加一行:
app.config[‘JSON_AS_ASCII‘] = False
以上是关于Python+Flask搭建mock api server的主要内容,如果未能解决你的问题,请参考以下文章