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
    
  • 相关阅读:
    chown更改文件和目录的所有者
    常量指针和指向常量的指针
    声明,有人破解我的mmsplayer,声称开源的mms
    声明,有人破解我的mmsplayer,声称开源的mms
    慎用mysql的utf8unicode
    慎用mysql的utf8unicode
    在 Ubuntu 下使用 Android NDK r4b 编译 FFmpeg 0.6.3
    skia 生成 vs2008工程
    mmsPlayer 2.0 将开源java部分
    skia 生成 vs2008工程
  • 原文地址:https://www.cnblogs.com/uncleyong/p/7385339.html
Copyright © 2011-2022 走看看