在先後端分離的項目中,前端
前端無需等後端接口提供了才調試,python
後端無需等第三方接口提供了才調試,json
基於「契約」,能夠經過mock server實現調試,flask
下面是一個簡單的mock server,經過python的Flask框架實現,後端
mock_test.pyapi
from flask import Flask, jsonify, g import copy app = Flask(__name__) @app.before_request def set_up_data(): g.data = [ {'id': 1, 'uname': 'tom'}, {'id': 2, 'uname': 'jcck'}, {'id': 3, 'uname': 'lucy'} ] g.user_does_not_exist = {"msg": "user does not exist"} @app.route('/api/user') def get_all_users(): return jsonify(g.data) @app.route('/api/user/<int:user_id>') def get_user(user_id): if user_id > 0 and user_id <= len(g.data): return jsonify(g.data[user_id-1]) else: return jsonify(g.user_does_not_exist)
# set FLASK_APP=mock_test.py
# flask runapp
獲取全部用戶:框架
http://localhost:5000/api/user 前後端分離
獲取指定用戶:3d
http://localhost:5000/api/user/2
非法字符:
http://localhost:5000/api/user/a
改進mock_test.py
from flask import Flask, jsonify, g import copy app = Flask(__name__) @app.before_request def set_up_data(): g.data = [ {'id': 1, 'uname': 'tom'}, {'id': 2, 'uname': 'jack'}, {'id': 3, 'uname': 'lucy'} ] g.user_does_not_exist = {"code":"01", "msg": "user does not exist"} @app.route('/api/user') def get_all_users(): print(type(jsonify(g.data))) # return jsonify(g.data) return jsonify({"code":"00", "msg":g.data}) @app.route('/api/user/<int:user_id>') def get_user(user_id): if user_id > 0 and user_id <= len(g.data): # return jsonify(g.data[user_id-1]) return jsonify({"code":"00","msg":g.data[user_id-1]}) else: return jsonify(g.user_does_not_exist) # set FLASK_APP=mock_test.py # flask run