一個簡單的mock server

在先後端分離的項目中,前端

前端無需等後端接口提供了才調試,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
相關文章
相關標籤/搜索