zoukankan      html  css  js  c++  java
  • 一个简单的mock server

    在前后端分离的项目中,

    前端无需等后端接口提供了才调试,

    后端无需等第三方接口提供了才调试,

    基于“契约”,可以通过mock server实现调试,

    下面是一个简单的mock server,通过python的Flask框架实现,

     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': '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 run

    获取所有用户:

    http://localhost:5000/api/user 

    获取指定用户:

    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
    
  • 相关阅读:
    PHP面向对象(一)
    Linux(九)LNMP环境Nginx服务器
    Linux(八)Apache服务器
    [转]PHP高手干货分享:不能不看的50个细节!
    Linux(七)LAMP环境搭建
    Linux(六)Samba服务器与防火墙
    Linux(五)服务和进程管理
    Linux(四)用户和用户组管理
    Linux(三)安装包
    Linux(二)Linux常用命令
  • 原文地址:https://www.cnblogs.com/uncleyong/p/7385339.html
Copyright © 2011-2022 走看看